
FrameWork
文章平均质量分 64
FrameWork
NO Exception?
分享内容!
展开
-
Zygote进程
1. Zygote是什么?Zygote是Android系统中的进程,由用户空间的第一个进程Init进程启动的,是Android系统运行的第一个AndroidRuntime进程,同时也是打通Native和Java的桥梁。2. Zygote的作用?Zygote进程的作用主要有两个:创建SystemServer进程;是用于管理整个Java framework层,包含ActivityManager,PowerManager等各种系统服务;孵化其他应用程序进程;3. Zygote的启动流程?Zygot.原创 2021-07-13 10:51:18 · 3158 阅读 · 1 评论 -
android 内核分析
6.frameworkframework定义了客户端组件和服务端组件及接口。框架中主要包含三个部分:服务端和客户端、Linux驱动6.1服务端服务端主要包括两个类:WindowManagerService和ActivityManagerServiceWindowManagerService控制各窗口的叠放次序,隐藏显示窗口。AMS的作用管理所有应用程序的Activity。还有两个消息处理类1.keyQ类:WMS的内部类,继承KeyInputQueue类。KeyQ一旦创建,会启动一个线程,不断原创 2021-07-20 10:44:01 · 197 阅读 · 0 评论 -
binder 总结
1.BinderBinder 是一种进程间通信机制Android 系统对应用层提供的各种服务如:ActivityManagerService、PackageManagerService 等都是基于 Binder IPC 机制来实现的。Binder 机制在 Android 中的位置非常重要.Android常用进程间通信方式:intent contentProvider 文件共享(序列化)、AIDL、Messager、 SocketAndroid 系统是基于 Linux 内核的,Linux 已经提供了原创 2021-07-15 14:43:27 · 218 阅读 · 0 评论 -
ANR 如何产生?
快速完成日历的控件1.依赖 implementation 'com.prolificinteractive:material-calendarview:1.4.0'2.创建控件 mCalenderView = (MaterialCalendarView) findViewById(R.id.view_calender);3.使用 mCalenderView.state().edit() //设置每周第一天 .setFirst原创 2021-07-13 15:29:22 · 635 阅读 · 0 评论 -
Handler 消息屏障 Barrier
反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使这个对象的类型在编译期是未知的。反射的核心是 JVM 在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候原创 2021-07-13 15:16:16 · 849 阅读 · 0 评论 -
Android 应用程序的启动流程
1.启动进程点击桌面应用,startActivity()函数最终是由Instrumentation通过Android的Binder跨进程通信机制 发送消息给 system_server 进程;在 system_server 中,启动进程的操作由ActivityManagerService 通过 socket 通信告知 Zygote 进程 fork 子进程(app进程)开启主线程app 进程启动后,首先是实例化 ActivityThread,并执行其main()函数:创建 ApplicationThre原创 2021-07-13 14:05:28 · 767 阅读 · 0 评论 -
Framework systemServer作用
1.systemServer执行顺序init进程–》zygote进程–》Android虚拟机—》systemserversystem作用是干嘛2.执行流程public final class SystemServer { ... public static void main(String[] args) { //先初始化SystemServer对象,再调用对象的run()方法, 【见小节1.2】 new SystemServer().run();原创 2021-07-13 11:30:53 · 249 阅读 · 0 评论