
android源码
z真真
我是咸鱼,我是咸鱼,我是咸鱼!
展开
-
invalidate和postInvalidate的区别及使用
总结:invalidate在主线程中调用,postInvalidate在子线程中调用,最终调的也是view.invalidate()invalidate() -> parent.invalidateChild() -> 层层找到parent,parent.invalidateChildInParent(),直到ViewRootImplViewRootImpl.inva...原创 2019-05-25 11:28:39 · 2008 阅读 · 0 评论 -
Binder机制总结
在Linux系统里面,进程之间是相互隔离的,也就是说进程之间的各个数据是互相独立,互不影响,而如果一个进程崩溃了,也不会影响到另一个进程。Android系统其底层是采用Linux作为基底,上层采用包含虚拟机的Java层以及Native层,通过系统调用(Syscall)连通系统的内核空间与用户空间。用户空间主要采用C++和Java代码,通过JNI技术打通用户空间的Java层和Native层(C++...原创 2019-01-17 14:47:26 · 581 阅读 · 0 评论 -
热修复
热修复: 当线上应用出现紧急BUG,为了避免重新发版,并且保证修复的及时性而进行的一项在线推送补丁的修复方案。插件化: 一个程序划分为不同的部分,以插件的形式加载到应用中去,本质上它使用的技术还是热修复技术,只是加入了更多工程实践,让它支持大规模的代码更新以及资源和SO包的更新。参考热修复——深入浅出原理与实现...原创 2019-06-10 17:21:53 · 506 阅读 · 0 评论 -
Android 打包流程
原创 2019-05-17 18:01:01 · 272 阅读 · 0 评论 -
Activity、Window、View关系(API27 源码)
1、相关的类Activity: Activity、ActivityThread、ActivityManager、ActivityManagerServiceWindow: Window、PhoneWindow、WindowManager 、WindowManagerImpl、WindowManagerGlobalView:View、ViewGroup、ViewManager、DecorV...原创 2019-01-15 10:10:20 · 216 阅读 · 0 评论 -
IntentService 深度解析(实例 + 源码)
上一篇:Service 深度解析上文说过Service默认工作在当前进程的主线程中,如需执行耗时操作,需要手动开启线程;且一旦开启服务,就会一直运行,直到stopService()或者stopSelf();也就是说我们在线程任务执行完毕后需要手动stopSelf(),才能释放service资源。android提供了IntentService来实现这个功能,封装了线程,并能够在线程任务执行完毕...原创 2019-01-15 10:13:45 · 222 阅读 · 0 评论 -
HandlerThread 使用详解(实例 + 源码)
上一篇:IntentService 深度解析上一篇我们从源码中看到IntentService内部的线程机制,是采用IntentService来实现的,这里我们就来深度解析下HandlerThread。推荐先看一下Handler机制详解(实例 + 源码)Handy class for starting a new thread that has a looper. The looper can...原创 2019-01-15 10:12:38 · 837 阅读 · 0 评论 -
Application的启动过程(源码)
Application 对象的生命周期是整个程序中最长的,即等于Android App的生命周期。Applicaiton类的应用场景初始化应用程序级别的资源,如全局对象、环境配置变量等数据共享、数据缓存,如设置全局共享变量、方法等获取应用程序当前的内存使用情况,及时释放资源,从而避免被系统杀死以前我们说过,应用程序的主入口是ActivityThread#main(),Applicat...原创 2019-01-15 10:11:47 · 752 阅读 · 1 评论 -
Handler机制详解(实例 + 源码API28)
Handler机制的作用用于线程间通讯 (进程可以包含一到多个线程,进程和线程的本质区别是能否共享资源,Android进程隔离)子线程UI操作都是通过Handler实现 (Android UI单线程模型,只能在UI线程更新UI)Handler消息机制模型Message:消息的载体,分为硬件产生的消息(如按钮、触摸)和软件生成的消息;(what / arg1 / arg2 / obj)...原创 2019-01-15 10:13:14 · 437 阅读 · 0 评论 -
apk安装
apk安装安装界面权限提示安装和卸载应用应用安装流程PackageManager对象安装界面权限提示apk(Android Package)是用于android平台上的一种压缩包Android系统中,有一个类似注册表的东西,用来记录当前所有安装的应用的基本信息,每次系统安装或者卸载了任何apk文件,都会更新这个文件,这个文件位于如下目录:/data/system/packages.xml。...原创 2019-07-23 16:50:56 · 696 阅读 · 0 评论 -
Activity的启动过程(源码API27)
Oreo -> Android8.1 -> API level 27启动activity的方式有以下几种:1、在应用程序中startActivity()或startActivityForResult()启动指定activity2、在launcher中单击应用图标,启动新的activity3、按BACK键结束当前activity,自动启动上一个activity4、长按Home...原创 2019-01-15 10:11:08 · 321 阅读 · 0 评论 -
AIDL实现原理
AIDL(Android Interface Definition Language) 安卓接口定义语言。是实现Binder机制,跨进程通讯的一个模板。定义一个IRemoteService.aidl文件package com.example.aidldemo.aidltest;//自定义对象需要手动 import packageimport com.example.aidldemo.ai...原创 2019-07-18 15:19:55 · 466 阅读 · 0 评论 -
Android 类加载机制(API27)
JVM加载的是class文件,系统提供的类加载器(BootStrapClassLoader、ExtensionClassLoader、ApplicationClassLoader)安卓虚拟机加载的是dex文件,系统提供的dex加载器(DexClassLoader、PathClassLoader)class文件、资源文件、AndroidManifest.xml 经过编译打包,成为ap...原创 2019-06-13 18:31:55 · 630 阅读 · 0 评论 -
View事件分发机制(源码 API27)
1、什么是事件分发机制当用户触摸屏幕时,会产生一个touch事件,这个touch事件(motionEvent)传递到某个具体的view处理的整个过程用户触摸屏幕会产生一个事件流(ACTION_DOWN -> ACTION_MOVE -> ACTION_UP)一般来说,view负责处理action_down事件后,会由这个view来处理接下来的事件(注意一般来说)2、核心方法...原创 2019-01-15 10:06:40 · 224 阅读 · 0 评论