Android如何判断系统是不是首次开机

 

1、在android系统的首次启动过程中,可能要做一些事情,但后面的启动不做。有什么方法判断系统是第一次启动呢?这里就简单分析一下。

2、\frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java文件里面有isFirstBoot函数,这个函数是用来判断是不是首次开机。

Android如何判断系统是不是首次开机_第1张图片

3、mFirstBoot的赋值,是在PackageManagerService构造函数进行赋值。

Android如何判断系统是不是首次开机_第2张图片

4、mSettings类是在\frameworks\base\services\core\java\com\android\server\pm\Settings.java里面,通过跟踪代码可以知道判断第一次启动其实是通过判断data/system/packages.xml是否存在来实现的,如果文件不存在,则认为是系统第一次启动。

Android如何判断系统是不是首次开机_第3张图片

Android如何判断系统是不是首次开机_第4张图片

Android如何判断系统是不是首次开机_第5张图片

 

5、实际运行测试

      5.1 在\frameworks\base\services\java\com\android\server\SystemServer.java文件里面的startBootstrapServices函数添加下面的红框里面的代码

Android如何判断系统是不是首次开机_第6张图片

        5.2 首次启动的log以及adb获取user.system.isfistboot变量的值。

Android如何判断系统是不是首次开机_第7张图片

    5.3 重新启动后的log以及adb获取user.system.isfistboot变量的值。

Android如何判断系统是不是首次开机_第8张图片

    5.4 测试ok,后面的程序可以根据user.system.isfistboot变量的值来判断是不是首次开机了。

更多相关文章

  1. Android修改icon和roundIcon后,显示的图标还是默认的图片
  2. Android系统底层架构【译】
  3. android中异步加载图片
  4. Android 倒计时功能,完美解决系统时间更改后,倒计时不准问题。
  5. Android 调用系统Email --多附件
  6. Android图形系统的分析与移植 -- 六、双缓冲framebuffer的实现
  7. Android如何获得系统(system)权限
  8. android 从相册中获取图片设置成头像的问题:

随机推荐

  1. 自定义主题
  2. 常用的android开发网站
  3. Android(安卓)studio 3 gradle配置问题
  4. Android ListView组件中android:drawSele
  5. 记事本。 layout相关
  6. xamarin android 如何创建一个服务
  7. Android 下的网络测试工具一个!
  8. android触控,先了解MotionEvent
  9. Android平移动画
  10. Android广播接实现电话的监听(电话的状态,