Android系统启动流程-桌面程序的启动 Android系统启动流程-桌面程序的启动
在Android启动流程-SystemServer分析中有提到,在SystemServer启动“Other”类型服务的时候,最后阶段会执行ActivityManagerService的systemReady()方法,这里就是启动桌面程序的入
2020-06-29
Android系统启动流程-ART虚拟机的启动 Android系统启动流程-ART虚拟机的启动
启动JVM的通用流程 加载虚拟机实现的动态链接库(Android中是so文件); 一般通过dlopen方法加载so文件. 设置启动参数,并使用JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*)方法创建虚
2020-06-28
Android中的Deep Link与 APP Link Android中的Deep Link与 APP Link
Deep link其实就是一种intent过滤器.可以直接进入APP特定的Activity. 如果APP中存在多个符合要求的Activity,会弹出一个选择框. App link一种特殊的deep link,需要验证网站网址. 用一
2020-06-28
Android系统启动流程-Native方法的注册 Android系统启动流程-Native方法的注册
在使用app_process 创建zygote进程的过程中会执行下面这些操作: 创建ART虚拟机 注册Native方法 找到ZygoteInit,通过反射调用它的main方法进入Java世界 这里说一下注册Native方法的一些细节.
2020-06-28
Android系统启动流程-SystemServer分析 Android系统启动流程-SystemServer分析
app_process64在启动zygote进程的时候,会从zygote进程fork出system_server进程. system_server的入口在SystemServer.java中 在Android启动流程-Zygote分析中已经
2020-06-26
使用VSCode阅读Android源码 使用VSCode阅读Android源码
在VSCode 中 ,打开命令面板进行编辑,可以使用UI页面编辑,也可以直接编辑json文件. 主要就是includePath,把主要的头文件路径都包含进去: { "configurations": [ {
2020-06-25
AOSP构建-Android.bp的理解 AOSP构建-Android.bp的理解
C/C++是一种非常古老的编程语言,在大型项目开发管理过程中,单靠MAKE,CMAKE等工具已经不满足需求了,因此催生出了各种个样的构建工具,比如Google自家的GN,Bazel等,还有CMake,XMake,Vcpkg等.工具虽然多种
2020-06-25
Android系统启动流程-Zygote分析 Android系统启动流程-Zygote分析
zygote是通过app_process或者app_process64命令行程序启动的. 先来看下app_process的流程: app_processint main(int argc, char* const argv[]) {
2020-06-25
Linux查看进程和线程信息 Linux查看进程和线程信息
psps -T -p 查看进程下所有线程信息 top 查看整体线程情况 top -H 查看指定进程的线程运行情况 top -H -p 查看当前活跃的进程 top
2020-06-24
Android启动流程-init进程分析 Android启动流程-init进程分析
基于Android 10 源码分析 之前在Android启动流程分析中已经大致分析了一下Android系统启动的过程,这里回顾一下: 上电,从Boot ROM中执行一段烧录好的代码加载bootloader bootloader执行,引
2020-06-22
Android中的ANativeWindow Android中的ANativeWindow
ANativeWindow是什么ANativeWindow是C/C++中定义的一个结构体,等同于Java中的Surface. Android NDK中可以访问到ANativeWindow. ANativeWindow中存放像素信息的结构是:
2020-06-19
AOSP的编译 AOSP的编译
aosp现在使用soong编译工具进行编译了,比之前的老版本编译要容易方便得多了. 步骤 配置好repo等工具 下载aosp源码 开始编译 模拟器演示或者刷写到真实设备上 其实这几个步骤都没什么好说的.第一二步按照要求下载工具和源码即可,
2020-06-12
Android开机动画分析 Android开机动画分析
开机动画系统会按照下面的顺序选择一个开机动画资源(一个zip文件,比如bootanimation.zip): /system/media/bootanimation-encrypted.zip (if getprop("vold.
2020-06-12
Android系统启动流程分析 Android系统启动流程分析
Boot ROM当按下电源键,硬件上电之后,会从一个固定的内存区域读取程序.这个程序是烧写到硬件上的(ROM),用于将bootloader加载到RAM中,并开始执行它. bootloaderbootloader用于告诉设备如何找到系统内核,
2020-06-12
Java中的Lock Java中的Lock
Java 中保证线程安全,操作同步的方法有很多种,比如: 使用synchronized关键字 使用Lock的实现类 其中synchronized属于语言级别的处理,无需我们去处理细节,而Lock则是一个接口,我们可以自定义Lock或者使
2020-05-15
Java中的Map Java中的Map
哈希表/散列表 通俗的说就是,使用散列函数将key值映射到数组下标,这样就可以根据key值直接访问到元素存储位置,这种结构就叫哈希表(散列表)。 将key值映射到数组下标的函数就做散列函数,这个映射过程是一个key值压缩的过程,因而不可避
2020-05-15
Java中的List Java中的List
List ArrayList通过动态数组存储数据的,数组默认长度为10,实际使用过程中可以通过trimToSize()方法剪裁到实际的list大小。 ArrayList是线程不安全的; ArrayList由于通过数组索引定位,所以查找效率比
2020-05-15
Java队列 Java队列
先来看一下Queue的定义: public interface Queue<E> extends Collection<E> { //插入成功返回true,如果容量不足,抛出异常 boolean add(
2020-05-15
1 / 2