通过pm 命令:
pm enable [--user USER_ID] PACKAGE_OR_COMPONENT 返回活动状态
pm disable [--user USER_ID] PACKAGE_OR_COMPONENT 更改为禁用状态
pm list packages -d 查看禁用列表(返回的包名列表)
检查包信息(打印manifest文件信息)
dumpsys 包包名
/system/priv-app 系统app目录主要是底层app,如setting、systemUI、TelephonyProvider
/system/app 系统应用目录,主要是第三方定制应用,如启动器、邮件、日历等
/data/app 对于普通应用程序,将apk 推送到此目录。重启设备PM会自动扫描并安装该目录下的应用程序。普通用户安装也会将apk 文件存储在该目录中。
日志分析
主要看日志判断几个进程是否正常,查找可能存在的问题。
系统是否启动,即FW是否就绪,PMS扫描是否完成,launcher启动的intent是否下发,socket、AMS、zygote是否正常工作,launcher进程是否启动,并且没有找到意图。可能是启动器没有编译。如果编译了,PackageManager是否完成扫描。没有扫描来检查其他系统/应用程序或/system/priv-app是否被扫描。
Android7.0检查设置是否被禁用,因为在Android 7.0中,启动过程中有一个新步骤。一旦您的手机完全启动并且Android 开始运行,开发人员可以通过一种方式在您登录之前允许进行通信。其他所有内容都将被锁定,您无法与任何其他应用程序交互。谷歌甚至为需要立即运行的应用程序插入了一个名为“设备存储”的新存储区域,因为它们无法访问正常的受凭据保护的文件系统
Android系统正常启动流程主要Log
启动第一个Android进程init,通过解析init.rc脚本生成文件系统,并启动vold、media、SurfaceFlinger等Nativie服务。在此阶段您可以看到带有文字“Android”的静态徽标和带有文字“android”的开机动画
[3.947876] init: /dev/hw_random 未找到挂载文件系统,出现一些挂载错误,主要是该文件不存在
[4.049219] EXT4-fs (actc): 使用有序数据模式安装的文件系统。 opts: noauto_da_alloc
[4.070701] EXT4-fs (acte): 使用有序数据模式安装的文件系统。 opts: nodelalloc启动守护进程installd服务:apk安装服务
16:00:06.510 I/installd(1342): installd启动后启动卷服务:主要用于管理USB/SD卡等外部存储设备。该平台可以操作和轮询外部存储设备的状态。当外部存储设备的状态发生变化时,卷服务也会实时向平台报告。
I/Vold ( 1326): Vold 2.1(复仇)火力全开
D/Vold (1326): 卷sdcard 状态更改-1(正在初始化)-0(无媒体)启动SurfaceFlinger 服务:合成图像并将其显示到屏幕上。启动服务的时候,会触发init启动一个bootanimation进程,这个进程就会开始动画显示,也就是我们看到的带有“android”字样的启动动画。
I/SurfaceFlinger(1333): SurfaceFlinger 正在启动
I/SurfaceFlinger(1333): SurfaceFlinger 的主线程已准备好运行。正在初始化图形硬件.启动动画过程开始。如上所述,带有“android”字样的动画将会开始,直到luncher界面停止动画。
E/BootAnimation(1299): BootAnimation:music:boot启动mediaserver服务:音视频多媒体服务,通过binder的进程间通信方式完成其他进程(如音乐播放器)的请求
I/mediaserver(1341): ServiceManager:0xb7460418 启动AudioFlinger服务:由mediaserver服务启动,它是Android音频系统的两大服务之一。 AudioFlinger向下访问AudioHardware,输出音频数据并控制音频参数。同时AudioFlinger通过IAudioFinger接口向上提供服务。
I/AudioFlinger(1341): 使用默认的3000 毫秒作为待机时间。系统初始化时,会启动一个CameraService守护进程,为上层应用提供相机对应的功能接口。并通过回调函数在硬件抽象层与硬件抽象层之间传递数据
I/CameraService(1341): CameraService 已启动(pid=1341)
D/CameraService(1341): CameraService:init
I/CameraService(1341): 已加载“Actions CameraHal Module”相机模块Zygote 进程启动:
1.生成Dalvik虚拟机并运行java程序
2. 将所需的类和资源加载到内存中。新运行的程序可以直接使用这些资源,无需重新加载,从而加快了运行速度。
3、生成SystemService进程,该进程用于生成Android平台运行所需的一些主要的java核心服务。
4. 生成新的android应用程序
将所需的类和资源(xml文件、图像等)加载到内存中
I/Zygote (1335): 正在预加载类.
E/cutils-trace(1335): 打开跟踪文件时出错: 没有这样的文件或目录
D/dalvikvm(1335): GC_EXPLICIT 释放40K,释放8% 522K/564K,暂停0ms+0ms,总共3ms
D/dalvikvm(1335): GC_EXPLICIT 释放5K,释放3% 601K/616K,暂停0ms+1ms,总计7ms
D/dalvikvm( 1335): Note: 类Landroid/app/ActivityManagerNative;有179 个未实现的(抽象)方法
I/Zygote (1335):在4497 毫秒内预加载了2777 个类。
I/Zygote (1335): 正在预加载资源.
W/资源(1335): 预加载的可绘制资源#0x1080096(android:drawable/toast_frame)随配置而变化!
W/资源(1335): 预加载的可绘制资源#0x1080105(android:drawable/btn_check_on_pressed_holo_light)随配置而变化!
W/Resources( 1335): 预加载的可绘制资源#0x1080104 (android:drawable/btn_check_on_pressed_holo_dark) 随配置而变化!
W/Resources(1335): 预加载的可绘制资源#0x1080102 (android:drawable/btn_check_on_holo_light) 随配置而变化!启动SystemServer进程,该进程将启动java核心服务,如电源管理器、活动管理器、窗口管理器等。
I/SystemServer(3146): 进入Android系统服务器!启动PowerManagerService:电源管理服务
D/传感器(3146): AccelerationSensor:AccelerationSensor()
D/传感器(3146): 加速度传感器:~启用(0, 0)
我/安装程序(3146):正在连接.
I/installd(1342): 新连接
I/SystemServer(3146): Power Manager 启动ActivityManagerService: 创建Activity Manager 服务
I/SystemServer(3146): 活动管理器启动DisplayManagerService:显示管理服务
I/SystemServer(3146): 显示管理器启动PackageManagerService:包管理器服务。遍历/system/priv-app、/system/app等目录下apk的权限和安装信息
I/SystemServer(3146): 包管理器
V/PackageManager(3146): 内置Pkg 文件:/system/etc/builtinapk
I/PackageManager(3146): /system/etc/permissions 目录中的非xml 文件/system/etc/permissions/extras,忽略
D/SELinuxMMAC(3146): 找不到安装策略/data/security/mac_permissions.xml
D/SELinuxMMAC(3146): 使用安装策略文件/system/etc/security/mac_permissions.xml 启动UserManagerService:用户管理服务
I/SystemServer(3146): 用户服务
I/SystemServer(3146): 账户管理器启动LightsService:灯光系统管理服务
I/SystemServer(3146): 内容管理器
I/SystemServer(3146): 系统内容提供商
D/lights (3146): #######open_lights(背光)######
D/lights (3146): #######open_lights (背光) OK######
I/SystemServer(3146): Lights Service 启动BatteryService:电池服务
I/SystemServer(3146): Battery Service 启动VibratorService:振动器系统管理服务
I/SystemServer(3146): Vibrator Service 启动AlarmManagerService: 定时器服务
[33.765371]request_suspend_state:在33747188755唤醒(3-0)
E/ConsumerIrService(3146): 无法打开消费者IR 硬件模块,错误: -2
I/SystemServer(3146): Alarm Manager 启动InputManagerService:输入子系统管理服务
I/SystemServer(3146): 初始化看门狗
I/SystemServer(3146): 输入管理器启动WindowManagerService:窗口管理服务
I/InputManager( 3146): 初始化输入管理器,mUseDevInputEventForAudioJack=false
I/SystemServer(3146): Window Manager 启动BluetoothManagerService:蓝牙服务
I/WindowManager(3146): 没有现有的显示设置/data/system/display_settings.xml;开始为空
I/WindowManager(3146): 无键盘保护界面!
D/BluetoothManagerService(3146): 正在加载存储的名称和地址
I/SystemServer(3146): 蓝牙管理器服务启动AccessibilityManager:
I/SystemServer(3146): 输入法服务
D/EventHub(3146): 找不到设备“gslX680”的输入设备配置文件。
I/SystemServer(3146): Accessibility Manager 启动MountService:管理sd 安装服务
I/ActivityManager( 3146): 配置更改=1df8 {1.0 ?mcc?mnc zh_CN ldltr sw480dp w800dp h480dp 160dpi lrg 长
I/SystemServer(3146): Mount Service启动LockSettingsService:管理锁屏的服务
I/SystemServer(3146): LockSettingsService 启动NetworkManagementService:网络管理服务
I/SystemServer(3146): 设备策略
I/SystemServer(3146): 状态栏
I/SystemServer(3146): 剪贴板服务
I/SystemServer(3146): 网络管理服务启动NetworkStatsService:网络状态服务
I/SystemServer(3146): NetworkStats 服务启动NetworkPolicyService:网络策略服务
W/MountService(3146): 未安装存储时调用getSecureContainerList()
I/SystemServer(3146): NetworkPolicy Service 启动WifiP2pService:管理P2P 连接服务
I/SystemServer(3146): Wi-Fi P2pService 启动WifiService:wifi 管理服务
D/WifiHW (3146): 无法卸载驱动程序模块“wlan_kk”: 没有这样的文件或目录
D/EthernetService(3146): 以太网服务构造启动
E/Netd (1330): 无法打开/proc/sys/net/ipv6/conf/eth0/disable_ipv6: 没有这样的文件或目录
F/SystemServer(1627): java.lang.SecurityException: 注册接收器android.app.LoadedApk$ReceiverDispatcher$InnerReceiver@41a2ed50Start EtherhetService:wifi Management 时无法找到调用者android.app.ActivityThread$ApplicationThread@41924790 (pid=1627) 的应用程序服务
I/SystemServer(3146): 以太网服务启动ConnectivityService:数据连接管理服务
D/ethernet(3146): 无法卸载驱动程序模块"asix": 没有这样的文件或目录
I/SystemServer(3146): 连接服务启动NotificationManager:通知管理器服务
I/SystemServer(3146): 更新锁服务
I/SystemServer(3146): 通知管理器启动DeviceStorageMonitorService:设备存储监控服务
I/SystemServer(3146): 设备存储监视器启动LocationManager:位置管理器服务
I/SystemServer(3146): 位置管理器启动SearchService:位置搜索器服务
I/SystemServer(3146): 国家/地区检测器
I/SystemServer(3146): Search Service 启动WallpaperService 壁纸管理服务
I/SystemServer(3146): 壁纸服务启动AudioService:音频管理服务
I/SystemServer(3146): 音频服务启动UsbService:usb 管理服务
E/UsbDeviceManager(3146): 无法写入/sys/class/android_usb/android0/f_rndis/ethaddr
I/SystemServer(3146): 串行服务启动SerialService:串口管理服务
I/SystemServer(3146): 暮光服务
I/SystemServer(3146): UI 模式管理器服务
I/SystemServer(3146): Backup Service 启动BackupService:备份管理服务
I/SystemServer(3146): 暮光服务
I/SystemServer(3146): UI 模式管理器服务
I/SystemServer(3146): 备份服务启动AppWidgetService:桌面管理服务
I/SystemServer(3146): AppWidget Service 启动PrintService:打印管理服务
I/SystemServer(3146): Print Service 启动KeyguardService 服务管理锁屏
V/KeyguardService(3198): onCreate()启动SystemUIService服务并管理StatusBar(状态栏)和NavigationBar(导航栏)
I/fsck_msdos( 1326): ** 第2 阶段- 检查集群链
E/ActionOMXPlugin( 1341): 在ActionOMXPlugin: libOMX_Core.so 正在打开!
E/ActionOMXPlugin( 1341): 在ActionOMXPlugin: libAction_OMX_Core.so 正在打开!
D/SystemUIService(3198): loading: classFW启动(即ready后),启动launcher,android动画结束,进入home界面。
I/ActivityManager( 3146): 开始u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher}进程号0
I/LatinIME(3315): 硬件加速绘图: false
I/ActivityManager( 3146): 为Activity com.android.launcher/com.android.launcher2.Launcher: 启动proc com.android.launcher pid=3371 uid=10013 gids={50013}
关于Android7.0 DirectBoot功能
Android7.0 下的DirectBoot 模式
存储空间1. 凭证加密存储,默认存储数据,只有用户解锁手机后才可以使用。
2.设备加密存储主要对应Direct Boot使用的存储空间。直接启动模式下和用户解锁手机后可用的存储空间
当应用程序在直接启动模式下运行时,应用程序无法运行。
运行需要在AndroidManinfest.xml中设置android:directBootAware="true"
Launcher启动变化launcher需要通过FallbackHome启动。 FallbackHome 是设置中的透明活动。 android:directBootAware的设置是true。
透明活动但要小心:
某些定制系统可能会限制用户自由使用设置功能,并通过代码禁用设置。因此,启动器无法在Android 7.0上启动。具体表现为找不到intent(No home screen found for),启动后系统一直卡住。开机动画,无其他错误日志
Launcher 不是directBootAware 应用程序。 PMS 中的限制阻止启动器此时启动。将启动器标记为directBootAware 应用程序将导致启动器在启动后崩溃。因为Launcher中的widget仍然是非directBootAware,所以此时仍然无法启动,除非所有widget相关的APP都被标记为directBootAware。
3、launcher启动流程增加设置---FallbackHome---launcher,相比Android 6.0需要更多时间。
FallbackHome源代码
FallbackHome时注册ACTION_USER_UNLOCKED广播,然后判断用户是否已解锁。如果没有,执行将结束。之后就会等待接收ACTION_USER_UNLOCKED广播,继续判断用户是否已经解锁。如果此时已经解锁,则会寻找Home界面。如果没有找到,则会发送延迟500ms的消息,然后重新搜索。如果找到启动器,它将完成FallbackHome。
PMS依赖于手机当前状态,需要用户解锁才能正常查询。如果强行修改,则不考虑DirectBoot和当前启动状态。即使当前用户未解锁,仍然可以查询符合条件的组件。修改后电脑将无法启动。由于Launcher不是directBootAware,所以当前手机用户还没有对其进行解锁,也没有进行与存储相关的解锁。
【Android 7.0系统开机动画无法启动Launcher解决方法】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我手机也是安卓7.0 的版本,最近遇到类似问题,开机后就卡在动画界面里,进去不了主界面,真是太烦人了!
有6位网友表示赞同!
我的老手机用的是安卓7.0,经常出现开机卡死的情况,感觉系统优化不够好。
有10位网友表示赞同!
看到这个帖子我放心了,原来我不是一个人遇到这个问题的啊。
有8位网友表示赞同!
有人见过这样的问题吗?怎么解决开机动画冻结的问题呢?
有11位网友表示赞同!
安卓7.0真的挺容易出问题的,希望厂家能赶紧更新一下系统修复bug
有16位网友表示赞同!
刚升级到安卓7.0,结果手机一开起来就卡在那儿了,真是太没劲了。
有12位网友表示赞同!
安卓什么时候才能稳定点啊?总是各种各样的问题。
有14位网友表示赞同!
我的好朋友也遇到和你一样的现象,他还问我要怎么解决呢!
有18位网友表示赞同!
这明显是软件问题吧,应该不会硬件故障引起的。
有8位网友表示赞同!
有没有什么方法能强制重启手机,迫使它跳过开机动画?
有17位网友表示赞同!
我怀疑是系统更新导致的,希望可以通过回滚更新解决问题
有18位网友表示赞同!
我也是安卓7.0用户,没遇到这样的情况啊,你们尝试一下格式化手机试试?
有13位网友表示赞同!
也许可以联系厂商售后,看看他们有没有解决方案?
有13位网友表示赞同!
我记得以前安卓系统也有类似问题,好像可以通过修改一些设置来解决的。
有18位网友表示赞同!
这也太影响手机使用体验了吧!希望可以尽快找到方法修复问题。
有5位网友表示赞同!
这个论坛上真的很好用,遇到各种手机问题都能在这里找到答案。
有5位网友表示赞同!
如果尝试了各种方法都无法解决,只能考虑换一台新手机了
有17位网友表示赞同!
安卓7.0什么时候能出个稳定版啊?老是搞这种bug。
有7位网友表示赞同!
这个情况还挺可怕的,感觉手机都玩不动一半了!
有8位网友表示赞同!
我听说一些第三方软件可能导致系统出现问题,大家要注意下载安装软件的来源。
有12位网友表示赞同!