![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 95
i加加
定个小目标,每周末一篇博客。
展开
-
(两百八十七)Android 更新R aosp源码
参考(一百八十六)Android Q源码下载主要还是根据https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/1.下载命令repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r25repo sync原创 2020-12-31 23:59:42 · 1799 阅读 · 4 评论 -
(两百八十五) SparseArray学习
code:http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/java/android/util/SparseArray.java参考:https://www.cnblogs.com/zly1022/p/7743466.htmhttps://blog.csdn.net/xiaxl/article/details/77267201SparseArray应用场景:虽说SparseArray性能比较好,但是由于其添加、查找、删除原创 2020-12-29 22:02:08 · 185 阅读 · 0 评论 -
(两百三十三)android Q Stack源码学习
前言:leetcode stack相关的简单题刷了第一遍,感觉还是挺简单的,学习一下stack 的jdk源码,加深下理解。1.继承关系class Stack<E> extends Vector<E> {public class Vector<E> extends AbstractList<E> implements...原创 2020-04-11 21:50:58 · 299 阅读 · 0 评论 -
(两百三十二) Android Q svc 命令学习
1. svcsvc位于如下目录中jiatai@jiatai:~/expand/aosp/Q_source_android-10.0.0_r6/frameworks/base/cmds$ find -iname svc./svc./svc/src/com/android/commands/svc./svc/svc其中./svc/svc是shell脚本#!/system/b...原创 2020-04-11 20:09:50 · 647 阅读 · 0 评论 -
(两百一十三)Ubuntu 解决Android studio获取不到gradle-x.x.x.pom的问题
参考https://blog.csdn.net/qq_23599965/article/details/809109001.问题点击运行报找不到如下3.2.1 pomCould not GET ‘https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom ‘...原创 2020-03-29 10:04:06 · 1113 阅读 · 3 评论 -
(一百九十八)Android Q 学习Preference组件
目录1.Preference定义2.默认布局3.默认style1.Preference定义/frameworks/base/core/java/android/preference/Preference.java * @deprecated Use the <a href="{@docRoot}jetpack/androidx.html">Andr...原创 2019-12-28 23:39:30 · 651 阅读 · 0 评论 -
(一百九十)Android Jetpack 学习(五)—— fragment
片段Fragment 表示 FragmentActivity 中的行为或界面的一部分。您可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(这有点像可以在不同 Activity 中...原创 2019-11-10 23:09:52 · 322 阅读 · 0 评论 -
(一百九十)Android Jetpack 学习(四)—— 偏好设置
前言:偏好设置如果是负责设置模块的同学就会非常熟悉,我虽然很熟悉,但是没有系统地看过官方文档,都是看参考设置以及学习设置源码的,也许会有所缺漏。学习:https://developer.android.google.cn/guide/topics/ui/settings设置 注意:本指南介绍如何使用 AndroidX Preference Library。自 Android ...原创 2019-11-10 21:24:31 · 860 阅读 · 0 评论 -
(一百八十九)Android Jetpack 学习(三)—— Android KTX
参考https://developer.android.google.cn/kotlin/ktx.html#ktxAndroid KTXAndroid KTX 是一组 Kotlin 扩展程序,属于 Android Jetpack 系列。它优化了供 Kotlin 使用的 Jetpack 和 Android 平台 API。Android KTX 旨在让您利用 Kotlin 语言功能(例如扩展函...原创 2019-11-07 23:11:08 · 1651 阅读 · 0 评论 -
(一百八十九)Android Jetpack 学习(二)- 数据绑定库
接 (一百八十九)Android Jetpack 学习(一)继续学习Android Jetpack其他组件目录数据绑定库使用数据绑定库使用入门Build environmentAndroid Studio support for data bindingAdditional resources布局和绑定表达式Layouts and binding ex...原创 2019-11-04 23:09:51 · 822 阅读 · 0 评论 -
(一百八十九)Android Jetpack 学习(一)
前言:老大让学习点新的东西分享一下,本来看了WiFi的电量统计,看到最后感觉挺没意思的,然后就翻bos直聘看有什么新技术要求的,看到flutter,Jetpack、react native。。。Jetpack这个比较新,学习下Jetpack参考:https://developer.android.google.cn/jetpackhttps://developer.android...原创 2019-11-03 20:36:47 · 761 阅读 · 0 评论 -
(一百八十六)Android Q源码下载
今天看了下清华aosp源里有Android Q的分支了,可以尝试下载了,Android P的代码还没怎么看,Q的已经上架了。。。参考https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/1.git initrepo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b...原创 2019-10-20 11:11:42 · 1577 阅读 · 0 评论 -
(五十二) Android anr 分析步骤总结
前言:最近经手了比较多的anr问题,声明经手不是解决,只是从log上推断造成anr的原因,以此作为根据转交给对应的人来处理。1. ANR简介ANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.通常在如下几种种情况下会弹出ANR对话框:5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等...原创 2018-06-29 19:45:23 · 2495 阅读 · 2 评论 -
(八十)onSaveInstanceState()和onRestoreInstanceState()调用试验
参考:https://blog.csdn.net/fenggering/article/details/53907654demo:https://github.com/happyjiatai/demo_csdn/tree/master/demo_80_onsaveinstancestate 1. 调用时机Android系统的回收机制会在未经用户主动操作的情况下销毁activity,...原创 2018-08-12 11:00:18 · 272 阅读 · 0 评论 -
(七十八) 查看Android状态的命令积累
1.基础知识准备:1.1 PSSItem 全称 含义 等价 USS Unique Set Size 物理内存 进程独占的内存 PSS Proportional Set Size 物理内存 PSS= USS+ 按比例包含共享库 RSS Resident Set Size 物理内存 RSS= USS+ 包含共享...原创 2018-08-10 23:29:39 · 4578 阅读 · 0 评论 -
(七十六) CountDownTimer
demo:https://github.com/happyjiatai/demo_csdn/tree/master/demo_76_countdowntimer1. CountDownTimer简介源码上是这么解释的:Schedule a countdown until a time in the future, with regular notifications on interval...原创 2018-07-27 20:55:08 · 362 阅读 · 0 评论 -
(六十九) 探究如何让Service anr?
demo地址:https://github.com/happyjiatai/demo_csdn/tree/master/demo_69_service参考:1.(六十五)Android O StartService的 anr timeout 流程分析2. (七十)Android O Service启动流程梳理——bindService3. (六十四)Android O Servic...原创 2018-07-14 00:04:51 · 2352 阅读 · 0 评论 -
(七十五)关于java && 和 || 优先级的探讨
1. 网上搜索结果从搜索结果来看&&的优先级比||高,所以默认下面代码 System.out.println(false && true || true); //true 因为 &&比||优先 System.out.println(true || true && false); ...原创 2018-07-24 20:52:09 · 434 阅读 · 0 评论 -
(八十五)探究activity生命周期和onMeasure/onLayout/onDraw的时序
1.demo源码先不看,先从应用的角度加个log有个简单认识。https://github.com/happyjiatai/demo_csdn/tree/master/demo_21_custom_view复用下之前写的自定义view https://blog.csdn.net/sinat_20059415/article/details/79776177的demo,通过在activi...原创 2018-08-25 15:33:52 · 1171 阅读 · 0 评论 -
(九十六)Android O activity standard mode 探究
1.启动模式简介Activity启动方式有四种,分别是:standardsingleTopsingleTasksingleInstance可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。设置Activity的启动模式,只需要在AndroidManifest.xml里对应的<activity>标签...原创 2018-09-23 17:15:25 · 215 阅读 · 0 评论 -
(十二) HashMap
前言:上次面试的时候被问到hashmap使用的数据结构,我记得不大清楚了,不确定地说是用的哈希表,面试官一脸嫌弃。。。现在看了下不是就用到哈希表么,也叫做散列表,难道是精神攻击=-=现在总结一下,以后再遇到就可以笃定地说了。参考博客:HashMap实现原理及源码分析1.HashMap基础知识首先盗一个图,如下的图就是hashMap的数据结构示意图了,称为哈希表,又叫做散列表,先有个印象。横的一排代...原创 2018-03-17 11:59:47 · 286 阅读 · 0 评论 -
(一百八十三)学习TraceView
参考:Android 性能优化:使用 TraceView 找到卡顿的元凶Android性能优化(一)之启动加速35%PS:启动加速总结一下就是能懒加载的懒加载,不能懒加载的看能不能放异步,异步线程合理分配优先级。1. 使用 Android Studio 生成 trace 文件Android Monitor已经过时了,现在用的profile之前有学习过,但好久不用忘了。...原创 2019-09-21 18:43:22 · 325 阅读 · 0 评论 -
(一百六十四)测试Application和静态广播的前后
前言:我理解静态广播生效必须是在app被拉起来之后,所以应该是Application的逻辑先生效,静态广播的处理后生效,即Application起来如果太耗时的话会影响静态广播的处理,测试一下先后顺序1.demomanifest<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="htt...原创 2019-07-06 11:33:51 · 503 阅读 · 0 评论 -
(一百六十三)测试ANR发生时键盘和虚拟按键是否生效
前言:最近遇到个问题,界面卡住了,输入法也卡住了,返回也卡住了,这时是应用导致的ANR呢?还是整个系统卡住了呢?测试一下demo地址:jiatai's anrtest demo目录1. 测试demo1.1 布局1.2 code2. 测试2.1 输入法2.2 虚拟按键2.2.1 返回键2.2.2 home键2.2.3 最近任务键3. 总结...原创 2019-07-06 10:52:10 · 230 阅读 · 0 评论 -
(一百六十)学习JobService
参考:https://developer.android.google.cn/reference/android/app/job/JobService.html目录1.JobService简介2. 权限要求3.关键方法3.1 onStartJob3.2 onStopJob3.3 jobFinished1.JobService简介http://androidxre...原创 2019-06-29 11:22:50 · 323 阅读 · 0 评论 -
(一百五十九)如何查找特定uid的进程
参考:https://www.runoob.com/linux/linux-comm-ps.html目录1.查找特定uid的进程2. ps --help2.1 ps -A2.2 ps -Af2.3 ps -AfT3.总结1.查找特定uid的进程1)比如看log发现一个uid为1089的进程,但是不知道对应的进程是什么,可以用如下命令查找ps -A | gr...原创 2019-06-29 10:26:55 · 4112 阅读 · 0 评论 -
(一百三十八)学习Android studio 导入Android源码
目录1.准备工作2.AS导入3.配置工作3.1 内存3.2 修改依赖参考:使用Android Studio导入Android系统源码Android Studio内存大小的设置1.准备工作1)下载代码2)编译idegeni source build/envsetup.shii lunchiiimake idegen -j4...原创 2019-04-30 21:14:16 · 764 阅读 · 0 评论 -
(一百三十七)梳理fragment的isAdded
目录1.api2.流程梳理2.1addFragment2.2 attachFragment2.3restoreAllState3.总结1.api/frameworks/base/core/java/android/app/Fragment.java /** * Return true if the fragment is currently...原创 2019-04-30 20:44:17 · 1961 阅读 · 0 评论 -
(一百一十九)Ubuntu Android Studio gradle 下载&配置
参考:https://blog.csdn.net/whitley_gong/article/details/49963899 1.确定版本比如随便从github clone一个项目,打开类似如下目录中的gradle-wrapper.properties可以看到版本对应是4.6的#Wed Nov 05 14:10:42 GMT 2014distributionBase...原创 2019-01-12 15:41:39 · 1831 阅读 · 0 评论 -
(一百二十)Ubuntu UI Automator学习
参考:1.https://developer.android.com/training/testing/ui-automator2.https://github.com/googlesamples/android-testing3.https://github.com/googlesamples/android-testing/tree/master/ui/uiautomator/Ba...原创 2019-01-12 23:04:14 · 528 阅读 · 3 评论 -
(一百一十八)Ubuntu UI Automator viewer
参考:https://developer.android.com/training/testing/ui-automator 1.官方简介UI Automator viewerThe uiautomatorviewer tool provides a convenient GUI to scan and analyze the UI components currently dis...原创 2019-01-12 09:37:51 · 1290 阅读 · 2 评论 -
(一百一十一)测试handler的归属权
1.问题最近在想handler消息处理是委托给looper所属的线程,那么handler自身创建的各类对象是归属谁的呢? 2.demodemo:jiatai demopackage com.example.demo_111_handleiswhose;import android.os.Bundle;import android.os.Handler;import a...原创 2018-12-08 11:26:24 · 278 阅读 · 0 评论 -
(四十五) 反编译工具jadx学习
1. 学习jadx github README访问:https://github.com/skylot/jadx/选择上面标注的点进去下载jadx-x.x.x.zip2. 解压使用下载好了解压运行bin/jadx-gui,打开如下的图形化界面,随便打开一个apk就可以看到源码了,当然如下图是混淆过的就有点无能为力了=-=...原创 2018-06-17 17:14:03 · 533 阅读 · 0 评论 -
(四十三)统计应用具体方法执行时长-Android Profiler CPU
统计应用具体方法执行时长工具原创 2018-06-16 16:11:09 · 7572 阅读 · 3 评论 -
(二十一)学习自定义控件
前言:最近有的招聘要求有要熟悉view的绘制原理,我也一直想看看自定义控件是怎么弄的,好久之前学的都忘了,现在看来其实两者是强相关的,不熟悉绘制原理,自定义控件也是徒劳。参考博客:点击打开链接demo地址:点击打开链接1. hello world学习什么新东西hello world是必不可少的,参考上面的博客先写个hello world的自定义View玩玩。demo:package com.exa...原创 2018-04-01 21:13:28 · 259 阅读 · 0 评论 -
(二十) aidl的简单demo
前言:写了个aidl的例子写了一个多小时,Service恁是起不来,最后灵光一闪,手机预制的xx管家会限制自启动和关联启动,emmmm,关了就好了, 真心累。demo地址:Server:点击打开链接Client: 点击打开链接1. aidl介绍抄下百度百科的介绍Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序也可以访问本应用程序提供...原创 2018-03-31 16:53:04 · 925 阅读 · 0 评论 -
(十六) 试着使用RxJava
前言: 看了RxJava的Readme和一些关于RxJava的博客,对RxJava有些简单地了解了,开始练个手熟悉一下,练手过程中发现由于RxJava版本迭代,参考博客中给的例子已经不能直接用了,说明这种第三方库的使用还是有风险的。参考博客:给 Android 开发者的 RxJava 详解基于RxJava版本:2.1.12demo地址:点击打开链接1. RxJava基础知识RxJava正如Read...原创 2018-03-25 22:13:45 · 280 阅读 · 0 评论 -
(十五)学习RxJava Readme
前言:最近开始看看其他公司的招聘要求,工作三年不能总干重复的活,然后看招聘要求上大多会提及一些我根本没听说过的技术,比如RxJava,现在有空就学习一下。参考的博客:点击打开链接(这篇偏重代码结合原理讲解,我还没看完,我喜欢一边看一边动手)RxJava Readme地址:点击打开链接demo:点击打开链接失败的demo: 点击打开链接1.RxJava简单介绍RxJava is a Java VM ...原创 2018-03-24 22:51:03 · 394 阅读 · 0 评论 -
(十四)探讨Runnable可以共享数据的原因
前言:最近看博客看到Thread和Runnable的区别,区别主要是两个:1.Thread实现了Runnable,但使用Thread需要继承丧失了继承其他类的能力,Runnable没有这个问题,因为使用中用实现代替了继承。2.Runnable可以共享数据。那为啥呢?之前阅读博客:点击打开链接demo:1.普通的例子2.结合Runnable例子1. 举个类似的例子场景:一个班有50名同学,然后班主任...原创 2018-03-23 19:46:17 · 1206 阅读 · 0 评论 -
(十九) 探索static变量在Android应用中的生命周期
前言:最近做项目和code review,都遇到了static变量造成的内存泄露问题,另外我理解static变量会一直存在某个地方占着内存,所以可以不加static的尽量不加,但没什么依据,就想着写个例子大概描述下static在Android应用中的生命周期。demo地址:我的github1. demo写个简单的demo,两个activity共持有一个static变量,然后对其进行++操作,来回切...原创 2018-03-29 20:23:19 · 1033 阅读 · 0 评论