Android源码分析
以开发为点,跟踪androiid源码,以时序图体现及简单说明;官方资料翻译
binn_chern
这个作者很懒,什么都没留下…
展开
-
反编译apk分析问题
1.使用apktool反编译使用apktool反编译apk获取apk中的资源文件2.jadx-gui打开apk使用jadx-gui打开apk,查看代码code3.确定错误提示字符串在错误界面找到可查找的字符串信息4.在apk反编译出来的资源文件中查找5.根据查找的字符串id在代码中查找6.根据显示字符串的位置,分析上下文逻辑...原创 2022-03-19 21:49:53 · 383 阅读 · 0 评论 -
(3)Android test
1. 概览2. 调试2.1 概览2.2 过去调试信息2.3 诊断native crash2.4 评估性能原创 2021-04-21 10:06:30 · 136 阅读 · 0 评论 -
(2)Android Source官网
Android Source官网:https://source.android.google.cn原创 2021-04-21 09:38:07 · 1125 阅读 · 0 评论 -
Android系统稳定性及性能
单元测试:https://developer.android.google.cn/training/testing性能优化:https://developer.android.google.cn/topic/performance原创 2020-09-15 09:38:38 · 1333 阅读 · 0 评论 -
(一)Android官网概述
Android开发相关技术网站梳理及重点关注章节梳理。熟悉官网资料与技术,在实际开发中有很大帮助,很多客制化放在,在Android原生技术中已经提供。使用好Android,熟悉光网资料很有必要。原创 2021-04-21 08:48:09 · 561 阅读 · 0 评论 -
Android10 wifi AP功能
wifi AP功能1.概述2.wifi Ap功能在应用层开发3.配置信息系统时序图4.startTethering时序图1.概述随着网络的广泛应用,广大用户对网络使用的便利性有了更高的要求。为了方便网络的使用,在一些有固定网络信号的设备上,有共享网络的需求。因此,Android实现了三种方式的网络共享(tether):usb 通过usb连接,可以把有网络的设备网络信息通过usb连接线传输给连接的设备蓝牙 网络信息通过wifi天线发送,实现类似wifi的无线网络wifi本篇文章重点说明wifi原创 2020-11-25 18:30:29 · 3761 阅读 · 5 评论 -
app:app启动总结(3)
app启动分为三大部分:launcher至zygote进程接收到启动app消息zygote进程创建子进程,子进程调用ActivityThread的main函数app进程从main开始至启动完成launcher至zygote进程接收到启动app消息launcher启动app和启动一个activity调用接口一样:startActivity,在执行过程中,AMS根据activity栈状态,决定是否通过zygote进程创建一个新的app进程zygote创建子进程和调用app mainzygote原创 2020-09-03 17:42:04 · 174 阅读 · 0 评论 -
app:activity生命周期-onCreate->onResume(2)
可参考博文Android Activity生命周期是如何实现的:https://www.jianshu.com/p/27d06a6b7007zygote进程创建app进程后,调用app的入口函数main(AactvityThread的main)开始,至调用完成app的activity的onResume。时序图分为两部分:app main的流程app运行过程的主要流程app main流程体现app的运行框架:体现开始和结束app运行过程的主要流程体现app进程和system_serve原创 2020-09-03 16:56:30 · 452 阅读 · 0 评论 -
app:从launcher启动app(1)
参考博文Android Activity生命周期是如何实现的: https://www.jianshu.com/p/27d06a6b7007从launcher桌面图标启动app,进入app进程。原创 2020-09-03 16:42:03 · 320 阅读 · 0 评论 -
AMS: native crash处理
system_server启动过程会建立一个socket,其他进程出现crash,debuger进程会把收集到的信息发送给AMS中的crash处理线程。 // file: private void startOtherServices() { final Context context = mSystemContext; VibratorService vibrator = null; IStorageManager storageManager原创 2020-09-03 14:26:09 · 335 阅读 · 0 评论 -
AMS: 启动launcher(3)
参考博文app 启动流程:https://www.jianshu.com/p/8a1a29073c44主要跟进了主流程,旁支末节可以根据主流程按需分析。原创 2020-09-02 18:06:26 · 380 阅读 · 0 评论 -
AMS:启动(2)
第一部分: 创建AMS对象及启动服务// file: frameworks\base\services\java\com\android\server\SystemServer.javaprivate void startBootstrapServices() { ... // Activity manager runs the show. traceBeginAndSlog("StartActivityManager"); mActivityMan原创 2020-09-02 17:50:43 · 252 阅读 · 0 评论 -
AMS:类图(1)
AMS中有很多类,类之间的关系呢?非完全的类图,把常见类列出。原创 2020-09-02 16:10:33 · 309 阅读 · 0 评论 -
system_server:启动流程
涉及源码android-8.0.0_r1\frameworks\base\services\java\com\android\server\SystemServer.javaandroid-8.0.0_r1\frameworks\base\core\java\android\app\ActivityThread.javaandroid-8.0.0_r1\frameworks\base\core\java\android\app\ContextImpl.javaandroid-8.0.0_r1\fra原创 2020-09-02 15:46:38 · 772 阅读 · 0 评论 -
app_process: 总结(6)
概述app_process是由frameworks\base\cmds\app_process编译而来,是启动java世界的入口程序。在开机过程中,经由app_process启动的进程有:zygote进程system_server进程zygote进程作用启动system_server进程,也即system_process裂变app进程,为每个app其他socket事务处理zygote三个部分zygote运行分为三个主要部分:1、app_process创建虚拟机,设置虚拟机属性原创 2020-09-02 11:54:30 · 1594 阅读 · 0 评论 -
app_process: zygote处理socket消息请求(5)
涉及源码android-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteConnection.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\Zygote.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteServer.jav原创 2020-09-01 16:18:10 · 458 阅读 · 0 评论 -
app_process: zygote启动到system_server(4)
涉及源码android-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteInit.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteConnection.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\Zygote.java原创 2020-09-01 15:15:31 · 252 阅读 · 0 评论 -
app_process: zygote启动(3)
涉及源码android-8.0.0_r1\system\core\rootdir\init.rcandroid-8.0.0_r1\system\core\rootdir\init.*.rcandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\Zygote.javaandroid-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\ZygoteInit.ja原创 2020-09-01 14:16:03 · 510 阅读 · 9 评论 -
app_process: 运行一般java可运行程序(2)
概述app_process作为工具,运行java程序。执行流程主要文件android-8.0.0_r1\frameworks\base\core\java\com\android\internal\os\RuntimeInit.java这个流程相对较少,不做赘述,时序图基本完全展示流程,并不是主流程跟踪。...原创 2020-09-01 11:09:19 · 673 阅读 · 0 评论 -
app_process: 启动java进程(1)
涉及源码Android\android-8.0.0_r1\frameworks\base\cmds\app_processAndroid\android- 8.0.0_r1\frameworks\base\core\jni\AndroidRuntime.cpp概述app_process是Android系统中一个重要的编译出来的可执行文件。该执行文件在开机过程中负责启动Android核心的进程zygote和system_server。app_process也可以用来运行可执行的java程序。主要流原创 2020-09-01 10:31:36 · 2122 阅读 · 0 评论 -
Android7.1&8.0 audio设置音量
涉及代码文件:android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.javaandroid/base/services/core/java/com/android/server/audio/AudioService.javaandroid/base/media/java/...原创 2020-02-17 09:35:49 · 1123 阅读 · 0 评论 -
Android7.1 Settings设置wifi静态ip逻辑
原创 2020-02-07 21:58:03 · 908 阅读 · 0 评论 -
Android7.1 控制背光流程
通信图如下如论上层哪里控制背光,上图部分是共用的流程,每次设置一个新的背光值,都会从上一个背光值开始,在RampAnimator.java以计算出的步长调整背光到目标背光值,因此是一个渐变的过程。所有调节背光都是调用PowerManagerService.java提供的接口。...原创 2019-11-20 21:15:50 · 1827 阅读 · 0 评论 -
android打开adb调试--授权流程
Android adb debug打开分为两大部分:1、adbd后台进程,负责网络connect和otg连接usb的初始化等。代码在system/core/adb下2、framework部分,当系统版本不是eng或usereng时,负责用户授权和启动adbd下图流程主要是打开adb调试及授权流程:...原创 2019-10-23 09:33:00 · 2569 阅读 · 0 评论 -
Android6.0 camera初始化及预览流程
1、初始化2、camera预览模型3、framework preview原创 2019-10-22 18:52:28 · 776 阅读 · 0 评论 -
SystemServer启动流程
AMS启动流程Android8.0 ActivityManagerService启动流程其中两个重点部分还待展开1、ProcessCpuThread流程2、ActivityStackSupervisor初始化原创 2019-03-19 11:23:40 · 483 阅读 · 0 评论 -
Android lmkd
Android低内存机制Android5.0及之后lowmemorykiller模式lmkd服务及其socketlmkd代码目录system/core/lmkdservice lmkd /system/bin/lmkd class core group root readproc critical socket lmkd seqpacket 0660 sy...原创 2019-04-15 23:09:49 · 2537 阅读 · 0 评论 -
Android启动流程-上电开始
转载:Android系统启动 https://www.jianshu.com/p/9f978d57c683很赞的一篇博客。等消化后,自己跟着流程整理一份。转载 2019-04-21 15:49:15 · 1344 阅读 · 0 评论 -
通过属性控制log输出
通过属性控制log输出涉及代码目录android\system\core\include\logandroid\system\core\liblog重点文件android\system\core\include\log\log.handroid\system\core\liblog\log_is_loggable.clog输出等级判断log是否输出,在底层log输出模块代码实现中通......原创 2019-05-23 09:35:54 · 2689 阅读 · 0 评论 -
开机向导启动完成后跳转到luncher(时序图)
Android 8.0 开机向导启动完成后,跳转到luncher时序图原创 2019-05-26 16:23:52 · 1154 阅读 · 0 评论 -
MediaCodec
官网链接:https://developer.android.google.cn/reference/android/media/MediaCodec?hl=en概述MediaCodec类提供了低层次封装的多媒体编解码功能,也就是编码和解码组件。MediaCodec是Android低级别支持多媒体的基础组件,通常和MediaExtractor、MediaSync、MediaMuxer、Medi...翻译 2019-07-14 16:30:08 · 862 阅读 · 0 评论 -
Android usb网络共享开关
Android usb网络共享开关文件:packages\apps\Settings\src\com\android\settings\TetherSettings.javapackages\apps\Settings\src\com\android\settings\TetherService.javaTetherSettings.java中状态变化重点函数private void u...原创 2019-08-01 13:44:36 · 5185 阅读 · 0 评论