![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android源码
Jake巨佬
Android开发
展开
-
Android Hook示例
从《Android进阶解密》上面学习到的一个Hook示例。定义:HOOK可以是一个方法或对象,用于劫持请求,例如A请求B,然后可以在中间加入C,在A的请求中加入一些处理,例如改变参数或者返回值,起到欺上瞒下的作用。在应用程序中可以通过代理来实现。实现示例startActivity中间会调用Instrumentation的execStartActivity,那么可以实现一个代理类Instru...原创 2019-04-15 21:14:50 · 449 阅读 · 0 评论 -
Bitmap源码解析与优化
Bitmap一直是消耗内存的大户,项目中尤其要注意对bitmap的使用和优化, 要对bitmap正确使用,并且进行优化, 那就需要对bitmap的源码有一定的了解,那现在就来看看bitmap的源码。Bitmap 创建示例Bitmap一般结合ImageView显示,要使用bitmap,当然先要创建,Bitmap的创建方式有很多种,例如在XML中定义bitmap、通过bitmapDrawable生...原创 2019-04-15 21:05:50 · 972 阅读 · 0 评论 -
AMS 的启动过程
从前面学习知道,系统启动时,会启动SystemServer进程,而SystemServer进程又会启动各种系统服务,包括AMS,那么这个过程是怎么样的,现在就从SystemServer的main()进入看看。SystemServer.main() public static void main(String[] args) { new SystemServer().run();//调用...原创 2019-04-06 16:43:40 · 307 阅读 · 0 评论 -
Android 四大组件启动过程之Service的启动和绑定过程
Service启动和绑定过程Service的启动过程可以分为两个部分:ContextImpl 到AMS的调用过程ActivityThread启动Service先来看一下第一个过程。ContextImpl 到AMS的调用过程启动Service的入口是startService(),代码在ContextWrapper中,ContextWrapper的startService()又调用了内...原创 2019-04-06 12:15:54 · 886 阅读 · 0 评论 -
四大组件的工作过程之Activity的启动过程
Activity的启动过程Android组件有四个,Activity、Service、ContentProvider、BroadcastReceiver。首先来学习activity的启动过程,Activity有两种类型,一个是根Activity,即应用程序的第一个Activity,一个是普通的Activity,启动根Activity即是启动该应用程序。首先来看一下如何去启动根Activity,从...原创 2019-04-05 18:04:37 · 286 阅读 · 0 评论 -
Android 应用程序进程启动过程
应用程序进程启动分为两个大的步骤:AMS通过socket向zygote发送创建应用程序进程请求;zygote接收请求并创建应用程序进程应用进程创建后会启动Binder线程池以及开启消息循环机制那么现在来从源码具体的看一下应用程序进程如何启动:1. AMS通过startProcessLocked()向zygote进程发起创建应用程序进程的请求,代码如下:private final v...原创 2019-04-04 16:26:25 · 2453 阅读 · 0 评论 -
Android系统启动过程介绍
DVM与ART的区别?5.0后Android runtime由DVM改成ART,区别是?DVM:应用运行时,即时编译器将字节码编译成机器码,使得应用运行效率低ART:应用安装时,提前进行一次预编译,将字节码编译成机器码存储在本地,这样应用运行时就不用再编译一次了,运行效率大大提高。Android 系统启动过程Android 系统启动过程涉及到很多系统进程的启动以及各类服务的创建,首先...原创 2019-04-04 12:21:48 · 1307 阅读 · 0 评论 -
Android AMS源码分析阅读(三)
Activity 之stop过程在之前学习了AMS如何与客户进程进行交互,从而实现启动应用进程并且创建application以及activity,调用activity生命周期进行界面显示的过程。那么当activity显示了之后,如何停止呢?现在就来学习一下,activity停止有很多种情况,例如从A启动B,那么A需要通知,又或者点击了Home键、返回键等,但是其实最终都是会经过startActi...原创 2019-01-22 20:43:27 · 763 阅读 · 0 评论 -
Android AMS源码分析阅读(二)
AMS和客户进程间的交互之Application的创建过程Android应用程序的启动入口在ActivityThread的main()函数,在main()函数中创建了ActivityThread的实例对象,并且调用它的attach()去执行应用程序的启动流程,attach()中的工作就是调用ApplicationThread的attachApplication()去创建application,那...原创 2019-01-22 20:42:21 · 1208 阅读 · 0 评论 -
Android AMS源码阅读分析(一)
最近学习了柯元旦所著《Android内核剖析》之AMS原理篇章,结合自己的理解以及对源码的分析,记录一下学习心得,AMS代码非常多,而且和Application以及Activity之间的交互也相对繁杂,这里学习大致的主干流程,之后有时间会再去细看。AMS的功能AMS的功能可以概述为以下三个:首先来看看这个统一调度各个应用程序之间的activity,可以把AMS理解成一个管理员,管理着手机里...原创 2019-01-22 20:41:00 · 6971 阅读 · 0 评论 -
Weex源码分析
Weex是跨平台的一种实践,令到开发者可以使用web语言来构建Android、iOS、web应用,实现一处编写,处处运行的效果,可以极大的降低人力成本,目前比较火的跨平台实践有React Native以及Flutter,weex相对小众一点,但是在功能上面也能够满足大部分的需求,而且接入也会相对简单,weex使用vue.js开发,本着知其然也知其所以然的原则,现在就来学习一下weex的源码。We...原创 2019-04-19 18:42:31 · 1808 阅读 · 2 评论