由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都浏览了一遍,然后手动运行了下adb命令,顺便跟踪了下过程,发现原来还是很好的理解,源码的各种线程创建,函数回调,对于我这种基础不咋好的,,还是看的晕晕呼呼,现在把我自己的理解给大家分享,有理解错误的还请多多指正. 一般直接上代码,可能看官都走了一大半,我们逆向的看,先看结果,再看过程,最后再看代码.…
本文转载自:http://blog.csdn.net/happylifer/article/details/7682563 最近因为需要,看了下adb的源代码,感觉这个作者很牛,设计的很好,于是稍微做了点笔记,方便以后再次需要修改adb时能迅速的回忆起来. ADB结构及代码分析 一.概述 Android的整个ADB由3个部分组成,ADB Client.ADB Server.ADB Daemon(ADBD).其中ADB Server是作为一个后台服务在运行的,当输入ADB指令时(比如adb dev…
Android系统启动过程分析 Android系统的框架架构图如下(来自网上):   Linux内核启动之后----->就到Android的Init进程 ----->进而启动Android相关的服务和应用. 整个的启动过程如下图所示: 以下针对Android 4.2内核代码的启动部分进行分析. Init进程,是一个由内核启动的用户级进程.内核自行启动(已被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动用户级程序init的方式,完成引导进程. Init进程始终是第…
本文转载自:http://blog.csdn.net/luansxx/article/details/25203269 ‘ Adb模块包括adb,adbd,源代码都在system/core/adb目录中. adb和adbd有很多代码是共享的,在不同的地方通过ADB_HOST编译宏隔开,ADB_HOST=1表示adb独有的代码. adbd是运行在Android设备上的服务程序,也称为Adb Daemon:adb则运行在PC主机上,并且有两种存在形式:Adb Server和Adb Client.另外…
阅读完上一篇文章: http://blog.csdn.net/andyhuabing/article/details/9226569 我们已经清楚了如何进入正常模式和Recovery模式已有深刻理解了,假设进入了Recovery模式,那么其核心代码是怎么做的呢? 代码路径在 android 源码的根路径: bootable\recovery 其入口文件就是 recovery.c 中 main函数 下面就开始逐步了解其Recovery的设计思想: static const char *COMMAN…
本文转载自:http://blog.csdn.net/andyhuabing/article/details/9248713 阅读完上一篇文章: http://blog.csdn.net/andyhuabing/article/details/9226569 我们已经清楚了如何进入正常模式和Recovery模式已有深刻理解了,假设进入了Recovery模式,那么其核心代码是怎么做的呢? 代码路径在 Android 源码的根路径: bootable\recovery 其入口文件就是 recover…
Presention层:   整个应用启动的时候,就执行依赖的初始化.编译项目之后,Dagger依赖框架使用ApplicationComponent生成一个DaggerApplicationCOmponent.   1. 首先进行依赖的生成 在Application中,调用initializeInjector()就会促使Dagger框架进行依赖生成.   ApplicationComponent 对其它Component提供Context,ThreadExecutor,PostExecution…
adb定义: adb(Android Debug Bridge) 安卓调试桥,包含adb client.adb server和adbd三部分. adb client:运行在PC上,即DDMS或者在Windows dos下启动的adb shell adb server:运行在PC上,作为adb client的server端,也作为adbd服务进程的客户端 adbd 服务进程:运行在Android系统上,以服务进程运行…
本文转载自:http://blog.csdn.net/luansxx/article/details/25203323 角色 l  服务 服务是提供特定功能的实体,接收请求,返回应答是服务直接最表现.大部分服务经过转换表现为文件(包括套接字)句柄.服务存在于Adb Server.Adb Daemon中,也可能存在于adb体系以外的某个进程中. l  客户端 客户端代表用户使用服务功能.客户端通过一系列数据转发连接与服务建立逻辑连接,方式请求,接收应答. l  报文(apacket) 客户端与服务…
简评: 作者在文中提到的三个静态代码分析工具不是互相替代的关系,各有各的侧重点,如果有需要完全可以同时使用. 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等. 对于 Android 来说用得最多的三个静态代码分析工具当属: Lint PMD Findbugs Lint Lint 是 Google 提供给 Android 开发者的静态代码分…