猿氏悟语

Android 新特性研究

Build AOSP Kernel

This page details the process of building customkernelsfor Android devices. The following instructions guide you through the process of selecting the...

2019-04-18 01:22:33

阅读数 20

评论数 0

Android耗电量统计

在android系统中,耗电量排行一直是一个实用的功能 当我们点击了电池用量后,就可以到达详细信息的界面。 在这个界面中,我们可以看到对于电池使用时间的预测。 可以看到具体app的使用耗电量排行。那么系统的是怎么实现的呢? 注意右上角的“显示完整的设备用电量” 当我们点击之后...

2018-11-12 13:58:30

阅读数 109

评论数 0

Android 9.0 电源管理之省电模式

Android的平台上,耗电量的问题一直被人所诟病。从Lollipop开始,Google也一直非常重视对于省电模式的改造。本篇文章将会基于最新的Android Pie的代码,来系统分析现在Android的省电模式流程,并且对一些可以继续优化的点来给出一些建议。本篇文章将会从SystemUI开始讲起...

2018-09-28 17:31:45

阅读数 2206

评论数 3

Android 8.0 启动速度优化工具

在Android 8.0上面,google进行了启动速度的优化,但是对于开发者来说,追求更快的速度是必须的。 这边就介绍一个android启动速度优化的工具,bootchart。 bootchart在5.0的时候就以推出,但是现在的使用方式有了一些调整,下面就简单介绍一下.

2017-09-04 16:12:54

阅读数 2324

评论数 0

Android7.0 Ninja编译原理

引言   使在Android N的系统上,初次使用了Ninja的编译系统。对于Ninja,最初的印象是用在了Chromium open source code的编译中,在chromium的编译环境中,使用ninja -C out/Default chrome命令,就可以利用源码编译出chrome的...

2016-11-07 06:52:04

阅读数 23374

评论数 5

共享内存映射之mmap()函数详解

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内...

2016-03-29 17:23:39

阅读数 763

评论数 0

Android Native Crash 堆栈转换

Android 源码中提供了转换的工具,使用下述的命令可以实现Native Crash的so内存地址转换为实际代码的Crash情况。 ./third_party/android_platform/development/scripts/stack --symbols-dir="out/...

2016-03-16 15:32:01

阅读数 1112

评论数 0

Android M PackageManagerService解析

在Android系统中,和用户关系最密切的service应该是PackageManager了。 一般来说,用户想要在Android Phone上进行自己感兴趣的活动,都少不了apk的支持。 不论是打电话,上网,发短信还是玩一些自己喜欢的游戏,这些内容在android的世界里都是以apk的形式存在的...

2016-02-25 16:43:24

阅读数 2237

评论数 0

android xml解析XmlPullParser的使用

xml相关参考  xml规范:http://www.w3.org/TR/REC-xml/  Xerces-J sax解析器的一篇教程:http://terpconnect.umd.edu/~zhangx/xml/html/xmlprog/xercessax/briefintro.html  ...

2015-04-23 17:34:33

阅读数 3174

评论数 0

android中SELINUX规则分析和语法简介

SELINUX是可以理解为一种android上面的安全机制,是有美国国家安全局和一些公司设计的一个针对linux的安全加强系统 我们可以通过配置SELINUX的相关policy,来定制自己的手机的一些权限,比如,我们可以完全让root用户没有任何的权限和user一样 在android里面,有两个类...

2015-04-15 19:24:01

阅读数 7128

评论数 1

Android启动流程分析(十二) SystemServer

SystemServer也是系统的一个重要的守护进程,从SystemServer的进程中,我们看到了系统的各种关键的Service的启动。 另外,根据前面的zygote的分析,我们知道了systemServer在android的启动过程中是肯定要启动的。 因为在init.rc里面,已经指定了要st...

2015-04-13 12:08:30

阅读数 1173

评论数 0

Android启动流程分析(十一) zygote的启动

首先zygote创建了appruntime的对象,并调用他的start。此后的活动由AppRuntime来控制 然后调用startVM来创建了虚拟机,调用startReg来注册JNI的函数 通过JNI调用zygoteInit进入了java的世界 调用registerZygoteSocket来响应子...

2015-03-31 17:16:01

阅读数 1156

评论数 0

Android启动流程分析(十) action的执行和service的启动

在前面的文章分析完init.rc的解析以后,我们知道现在action按照init.c的main函数中的秩序,维护了一条qlist的链表,listnode为action_qlist service也维护了一条链表,listnode为service_list。 那么,在android的启动过程中,ac...

2015-03-30 18:15:36

阅读数 4470

评论数 0

Android启动流程分析(九) 解析init.rc的service

在分析完解析init.rc的action之后,剩下的一部分就是解析service了。 而解析service还是需要回到parse_config里面来。根据前面的知识,我们也可以很容易的知道在关键字为section的时候,会进入到parse_new_section。 这里会先执行parse_serv...

2015-03-30 14:39:45

阅读数 2226

评论数 1

Android启动流程分析(八) 解析init.rc的action

上一章讲述了android启动过程中,加载init.rc之后需要对其进行解析。 而解析又根据三个不同的SECTION来执行不同的初始化的文件,分别是parse_action,parse_service,parse_import. 那么,这一节,我们就从parse_action来讲一下是如何解析in...

2015-03-29 15:50:22

阅读数 1516

评论数 0

Android启动流程分析(七) init.rc的解析

Init.rc的解析过程是笔者认为在android启动过程中,最复杂,最难理解的部分。 虽然它的内容很少,但是却包含了非常多的处理,接下来我们来慢慢的分析。 经过前面的分析,我们知道了read完init.rc的文件后,保存到了data的数组,传递到了parse_config的函数里。

2015-03-29 13:50:31

阅读数 1280

评论数 0

Android启动流程分析(六) init.rc的语法

在init.rc的解析之前,我们要先了解init.rc里面到底写了什么,它的语法是怎么样的。 其实,非常建议去读一下android关于init.rc的说明文件:system/core/init/readme.txt 这个里面,已经讲的非常的清楚。但是这里,还是简单的总结一下。 init.rc...

2015-03-29 12:38:22

阅读数 2449

评论数 0

Android启动流程分析(五) init.rc的读取

在前面一篇中,分析了在init的main函数中,会去解析init.rc。那么解析的过程是怎么样的呢? init.rc的解析函数为:init_parse_config_file. 实现的位置在于:init_parse.c

2015-03-29 12:13:50

阅读数 1180

评论数 0

Android启动流程分析(四) init进程分析

前面讲到了,我们init进程执行的话,首先执行的会是init的main函数。 那我们就先来看看init的main函数做了什么事情。 首先,我们看到init最先做的事情是创建一些文件夹,并且挂载设备,这些函数都是linux的常见函数:

2015-03-29 11:38:58

阅读数 1206

评论数 0

Android启动流程分析(三) init进程初窥

init进程是android启动过程中的第一个进程,如果我们用adb shell进入到android 手机后,使用ps命令去看android的系统进程的话,会得到如下的结果:

2015-03-29 10:28:07

阅读数 1266

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭