导航:首页 > 操作系统 > androidpersist

androidpersist

发布时间:2023-07-05 12:59:46

① 深入理解android:SystemServer进程的作用

看了一段时间关于SystemServer进程的博客,有点小理解,写一篇关于SystemServer的小笔记,然后走一遍过程。

ZygoteInit通过startSystemServer方法fork了一个SS进程。这个进程有啥作用呢。

handlerSystemServerProcess()方法只要是以下三个方法:

其中 applicationInit() 很有意思很重要。该方法中有一个,invokeStaticMain方法通过反射调用main方法:

run方法最终通过反射调用SystemServer的main方法,作用是:
通过以上分析其实main方法的主要作用是:
1、调整系统时间
2、设置属性persist.sys.dalvik.vm.lib.2的值为当前虚拟机的运行库路径
3、装载libandroid_servers.so库,初始化native层service
4、初始化系统Context
5、创建SystemServiceManager对象
6、调用startBootstrapServices(),startCoreServices(),startOtherServices()启动所有的java服务

另外也可以看到为什么说handler默认是主线程,以及android 应用本身就是基于handler/Looper/Message的
startBootstrapServices():启动java层的各种服务。framwork层的服务。例如AMS

startCoreServices:启动核心服务:

startOtherServices也与上面一样启动各种服务。

总结下:SystemServer进程最终会执行到SystemServer类中的main方法中,初始化各种服务器,其中第一个初始化的就是ActivityManagerService。当我们点击启动app的时候。Zygote会对这个消息进行处理,最终执行到applicationInit。那么是在哪里调用方法启动应用的呢?

② androidpersist保存文件

persist分区。androidpersist保存文件通常在恢复出厂设置以后都是在persist分区。安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。

③ 如何修改android系统默认时区

android平台,经常会遇到产品需要更改系统默认时区日期时间的问题。android更改时区相对比较容易实现,网上也有很多资料,直接设置一个属性即可,例如设置上海东八区,persist.sys.timezone=Asia/Shanghai。但是如何实现更改默认系统时间呢?
在android中,Linux内核中、rtc时钟,默认的起始日期都是1970年1月1日,那么如何把默认日期指到2012-01-01呢?笔者在实践中发现,在RTC驱动中可以很容易实现。在RTC驱动加载的时候,一般都有个probe函数需要先执行,因此在probe函数里下手最直接有效。RTC从1970-01-01开始,那当然很容易把默认值设置到2012-01-01,所需要设置的seconds也就是从1970-01-01所差的秒数,以秒为单位。因此,一旦读出来的RTC值小于我们预想的值比如2012-01-01(1325402913)小,我们就把它设置到这个时间点。

seconds = rtc_read_time();
printk("init PMU/RTC time to %ld \n", seconds);

if(seconds <= 1325402913) {
seconds = 1325402913;/*2012-01-01*/
ret = rtc_set_time(seconds);
RTC_DBG("Init Set time: %ld, ret =0x%x\n", seconds, ret);
}
笔者通过结果显示,在android平台上是可行的。要设置到哪天几点几分,只要算好具体1970-01-01 00:00差的秒数即可,简单明了。这样客户、用户使用起来更方便一些。

阅读全文

与androidpersist相关的资料

热点内容
c程序员做什么工作 浏览:559
微信源码怎么关闭 浏览:261
风险区牛熊区狙击点源码 浏览:815
python变量如何表示虚数 浏览:286
诛仙1服务器怎么改名 浏览:273
ppt的超链接命令的作用是 浏览:89
如何用git拉取服务器代码 浏览:369
锤子系统有文件加密吗 浏览:877
程序员主动离职和被裁员哪个好 浏览:792
360命令行 浏览:726
程序员骗色 浏览:668
cisco2950重启命令 浏览:459
加密货币区块链可以增发吗 浏览:290
黄龙公式源码 浏览:773
linux系统ftp服务器 浏览:321
山西配电服务器机柜云主机 浏览:452
量化选股模型公式源码 浏览:9
龙卡购车分期怎么绑app 浏览:779
python读取bios信息 浏览:113
程序员老爸初体验 浏览:729