
子类__Android
KrisFei
工作记录.
展开
-
[RK3288][Android6.0] 调试笔记 --- 开机视频无法播放
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前在平台调试版本实现了开机播放mp4 video,在release的时候发现播放不了。 一直朝开机加载顺序和调试版本不一致的思路去研究这个问题,后来发现是ffplayer播放文件没有权限,真是醉了。log如下:01-01 08:04:22.760 212 427 I RockFFPla原创 2017-09-04 10:41:14 · 3445 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机动画时间的确定
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前有在 [RK3288][Android6.0] 调试笔记 — 开机动画支持播放mp4视频功能 实现了播放mp4,那么视频的时间多少才合适呢?开机动画的退出是靠property即 #define EXIT_PROP_NAME "service.bootanim.exit" 来判断的,见函数c原创 2017-08-02 16:35:31 · 2823 阅读 · 5 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机动画支持播放mp4视频功能
Platform: RockchipOS: Android 6.0Kernel: 3.10.92kris@:~/rk3288/frameworks/base/cmds/bootanimation$ g dfdiff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cp原创 2017-06-12 13:19:55 · 3540 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 修改浏览器默认地址
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92rk自带了一个property,修改了后发现无效。 device/rockchip/rk3288/system.prop ro.rk.homepage_base=http://www.google.com/webhp?client={CID}&source=android-home事实上系原创 2017-06-15 14:09:05 · 1459 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- 隐藏系统状态栏的方法
Platform: RockchipOS: Android 6.0Kernel: 3.10.92保留显示的流程,让它显示0高度,相当于隐藏了。kris@:~/rk3288/frameworks/base$ g df 7975415e7189b90e7816e19e5fd572c6ebdd3a86 b3016638ec975c95def4aa8f1c19cf2b023a0d2b原创 2017-06-08 10:00:43 · 2632 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- Android预编译拷贝多个文件方法
Platform: RockchipOS: Android 6.0Kernel: 3.10.92普通类型的多个文件拷贝:方法一:PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_PATH)/src_dir,system/etc/dst_dir/)方法二:此方法因为在source envsetu原创 2017-06-07 15:44:33 · 1449 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 无法安装需系统权限的apk问题
Platform: RockchipOS: Android 6.0Kernel: 3.10.92现象:测试wifi display安装测试apk时安装失败,提示01-21 19:06:01.295 210 210 E installd: Couldn't opendir /data/data/com.rockchip.wfd: No such file or dir原创 2017-06-02 13:36:22 · 2916 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 屏蔽系统下拉菜单显示
Platform: RockchipOS: Android 6.0Kernel: 3.10.92kris@:~/rk3288/frameworks/base/packages/SystemUI$ g df 3e38d54b49a34a1e923b7a3508f96cee73539576 8121135dc99e6864b09171a5fd71618181e26401di原创 2017-05-26 10:33:46 · 2162 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- 通过adb安装APK时间很长问题
Platform: RockchipOS: Android 6.0Kernel: 3.10.92使用adb安装apk[kris@:~/Downloads]$ adb install souhushipin_6500.apk要耗时40s,log如下:01-21 17:39:26.210 2011 2011 D AndroidRuntime: >>>>>> START原创 2017-05-16 09:54:53 · 8641 阅读 · 0 评论 -
[RK3288][Android6.0] ART虚拟机对APK的优化知识点小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92Android 4.4之后, Google使用了ART无缝地代替了Dalvik虚拟机,无缝是指接口相同,只是替换了库而已,ART和Dalvik的使用可以通过property persist.sys.dalvik.vm.lib.2来选择.#getprop [persist.sy原创 2017-05-15 19:02:47 · 1823 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 修改默认system/bin/下可执行程序权限
Platform: RockchipOS: Android 6.0Kernel: 3.10.92需求:新增一个可执行文件放在system/bin/下,并且只有root和system权限才可以使用.调试:一开始在init.rc中修改发现失败,以为是放在开机挂载文件系统前了,所以又放在了init.rc的on post-fs-data 阶段, 测试了还是失败.后来原创 2017-04-26 13:33:13 · 7521 阅读 · 7 评论 -
[RK3288][Android6.0] 调试笔记 --- apk安装添加黑名单
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92出于定制考虑,需要把系统一些不必要的apk移除,但是一个个找又太麻烦,在不考虑存储空间的情况下可以通过禁止安装的方式来实现.原理就是在安装apk之前检查当前apk是否处于禁止安装黑名单中,是的话就不让安装.改动如下:[kris@:~/rk3288/framewor原创 2017-04-14 13:30:20 · 2288 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 默认允许安装未知来源apk
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92User版本默认情况下不允许直接安装第三方apk, 需要在设置 -> 安全里勾选未知来源(Unknown source)才可以.这里修改成默认开机就可以安装.解决方法:[kris@:~/rk3288/frameworks/base/packages/Setting原创 2017-04-13 15:00:08 · 5628 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92默认user版本不显示开发者选项这一栏,需要通过连续点击版本号7次来显示.packages\apps\Settings\src\com\android\settings\DeviceInfoSettings.javastatic final int TAPS_TO_B原创 2017-04-13 13:23:15 · 4713 阅读 · 0 评论 -
[RK3288][Android6.0] 输入法框架开机初始化部分小结
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92之前遇到默认输入法修改有问题,这里对输入法服务开机初始化部分做个小结.startOtherServices -> SystemServer.java new InputMethodManagerService -> IWindowManager.原创 2017-04-12 14:04:29 · 1482 阅读 · 0 评论 -
[RK3288][Android6.0] SettingsProvider数据库小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92数据库从db改成了xml的形式/data/data/com.android.providers.settings/../settings.db --> /data/system/users/userid/settings_[system|global|secure].xmlglo原创 2017-04-10 14:18:26 · 1899 阅读 · 1 评论 -
[RK3288][Android6.0] 调试笔记 --- /data/app/预置apk安装失败
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92需求:在 /data/app下放置预置apk, 开机让其自动安装.因此建了个test目录root@rk3288:/data/app # mkdir test然后将test.apk放了进去.现象:重启开机后提示:01-23 01:14:03.831原创 2017-04-07 17:28:58 · 3761 阅读 · 3 评论 -
[RK3288][Android6.0] 调试笔记 --- 设置中文为默认输入法
Platform: RK3288OS: Android 6.0Kernel: 3.10.92添加方法:拿搜狗输入法举例.1. 添加第三方apk路径: rk3288/device/rockchip/rk3288/Sougou:Android.mk //标准预制第三方apk方法LOCAL_PATH := $(call my-dir)include原创 2017-04-06 10:14:05 · 6034 阅读 · 15 评论 -
[RK3288][Android6.0] 调试笔记 --- 替换系统签名
Platform: RK3288OS: Android 6.0Kernel: 3.10.92由于项目的apk安装需要sharedUserId为system的权限(不需要高权限的apk是可以正常安装的),一开始我用的是releasekey,导致签名文件不匹配无法安装,因此就替换系统默认platform签名文件.生成新的签名文件方法参考 rk3288/build/target/prod...原创 2017-02-14 15:43:09 · 5635 阅读 · 0 评论 -
[RK3288][Android6.0] 电池信息守护进程 --- healthd
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92Android4.4 -> Android6.0 有点细微变化, 但是整体框架不变, 使用守护进程的方式和kernel通信,拿到信息后再和上层service交互, 属于沟通的桥梁.main -> system/core/healthd/healthd.cpp hea原创 2016-12-22 18:12:11 · 2429 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 移除导航栏(虚拟按键)
Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92说明:通过代码的方式可以移除导航栏, 不过系统提供了property可以更快控制.方法:rk3288/device/rockchip/rk3288/system.propqemu.hw.mainkeys=1调用处:rk3288/frameworks/bas原创 2016-12-05 09:59:43 · 5606 阅读 · 14 评论 -
[RK3288][Android6.0] 调试笔记 --- Su添加密码登陆功能
Platform: RK3288OS: Android 6.0Kernel: 3.10.92需求:原生Android的Su只能当前用户是root或者shell才能执行,这里修改下,在user版本下可以通过输入密码的方式获取超级权限.改动:[kris@eco:~/rk3288/system/extras]$ g dfdiff --git a/su/An原创 2016-12-02 10:01:54 · 3213 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 移除锁屏功能
Platform: RK3288OS: Android 6.0Kernel: 3.10.92Uboot: v2014.10之前在Android4.4上通过修改KeyguardViewMediator.java里的showLocked()和doKeyguardLocked()以及mExternallyEnabled变量来实现是可行的, 但到6.0之后第一次开机加载正常,第二次原创 2016-12-01 17:12:08 · 4455 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92发现开机的时候Muisc会收到broadcast被调用起来, ActivityManager: Start proc 982:com.android.music/u0a29 for broadcast com.android.music/.MediaButtonIntentReceiver 那原创 2017-08-24 14:22:56 · 2559 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 查看Activity对应调用的进程
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92遇到launcher自动重复启动的问题,需要查看是哪个进程调用的。 创建Activity都会调用到startActivityLocked(), 直接有对应的参数callingPackage,直接打印即可:kris@:~/rk3288/frameworks/base$ g df services/原创 2017-08-22 16:55:52 · 2552 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- home key触发启动launcher调用
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92过程比较简单,倒序查看。原创 2017-08-22 14:36:04 · 994 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- ComponentName的使用
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前没太注意它的具体内容,最近遇到service后台运行的问题正好关注一下。Android的应用程序都是基于组件来标识的。 它有两部分组成,包名和类名 通过这两个参数,系统可以打开对应应用程序下的Activity或Service.包名和类型的定义都在AndroidManifest.xml原创 2017-08-21 15:59:35 · 506 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机后台抓取kernel log
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92log保存在/data/log下最大保存5份文件满5份之后删除最旧的一份kris@:~/rk3288/device/rockchip/rk3288$ g df 86f2bc34af5f4f8455a0e674c781b7c05c5af8a6 ed7447a416c3e47ab097b633原创 2017-08-15 11:57:48 · 3278 阅读 · 2 评论 -
[RK3288][Android6.0] 调试笔记 --- kill掉service后不重启方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92应用程序经常会用到service来跑后台服务,然后应用程序被kill掉之后service却还在。 或者你想要kill掉service,但是执行了kill命令之后它有默认启动了。 这是默认的系统行为,下面是解决方法:如果Service原本就有onStartCommand,那么直接修改返回值,如果原创 2017-08-15 11:39:02 · 1391 阅读 · 0 评论 -
[RK3288][Android6.0] SystemUI加载过程(状态栏和导航栏)
Platform: RockchipOS: Android 6.0Kernel: 3.10.92startSystemUi -> SystemServer.java context.startServiceAsUser -> //ComponentName: com.android.systemui onCreate -> SystemUIServic原创 2017-08-03 16:46:11 · 2057 阅读 · 3 评论 -
[RK3288][Android6.0] 系统中UID(用户ID)知识点小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92概念: 基于Linux中的user id,区别:Linux 主要用于权限管理,一个用户创建的都是同一个idandroid 每个应用程序都都创建一个新的uid, 用来表示一个应用程序定义: 在文件 system/core/include/private/android_filesystem原创 2017-08-03 09:31:58 · 1528 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- Activity多次调用finish()引起的Warning
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 在调试Launcher重复启动问题的时候遇到一条log,做个记录。 W/ActivityManager( 543): Duplicate finish request for ActivityRecord{3b8e582 u0 com.ecovacs.bank/.activity.F原创 2017-08-02 16:18:30 · 3287 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 静态库编译覆盖使用方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92现象: 电池服务模块healthd定期在kernel中打印log: healthd: battery l=1 v=0 t=0.0 h=4 st=3 chg= 2017-01-06 21:48:18.379961678 UTC由于项目用的是其他电池模块,所以想拿掉这条log,在 Battery原创 2017-08-01 15:08:43 · 1328 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 移除低电量警告显示对话框
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92当低电量时会有如下图提示: 如果是定制Launcher的话可能需要移除对话框解决方法:kris@:~/rk3288/frameworks/base$ g df packages/SystemUI/src/com/android/systemui/power/PowerUI.javadiff -原创 2017-08-01 10:20:00 · 2874 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- 系统Dump Callstack方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92像Java, C++带类继承,有时候分析流程会找晕,可以通过dump callstack快速了解调用过程Java中: Log.e("kris",Log.getStackTraceString(new Throwable()));C++中: #include <utils/CallStack.h原创 2017-07-31 18:12:58 · 1574 阅读 · 5 评论 -
[RK3288][Android6.0] 调试笔记 --- 动态显示和隐藏导航栏(广播方式)
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92直接移除导航栏在 [RK3288][Android6.0] 调试笔记 — 移除导航栏(虚拟按键) 已经给出,此文实现以广播的形式动态显示和隐藏导航栏,这样不仅避免了系统通过了自带只针对Activity显示和隐藏的不便(比如一个app有N多个Activity),而且可以在任何地方去动态修改。 改动原创 2017-07-26 15:25:33 · 5482 阅读 · 5 评论 -
[RK3288][Android6.0] 调试笔记 --- 开机语言默认为简体中文
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92kris@:~/rk3288/build/target/product$ g df debf30c44d14142bde40d7f6ae71e44124dff3ce a83b9465b0857aca31d4e24a3c6d6f280cacb321diff --git a/target/produ原创 2017-07-25 16:47:07 · 2421 阅读 · 15 评论 -
[RK3288][Android6.0] 调试笔记 --- 替换默认Launcher
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92之前在Android4.4上也做过此功能,Android6.0有变化,请同事帮忙添加了~ 实现:diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/intern原创 2017-07-18 10:53:11 · 3726 阅读 · 34 评论 -
[RK3288][Android6.0] 开发者选项中的Strict mode功能
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92有些页面显示的时候比如预览画面,浏览器四周会出现一圈红框,如下: 这是Google用于开发调试性能的一个功能,解释如下: 在开发者选项中可以设置开关: 当切换时,调用流程如下: onPreferenceTreeClick -> writeStrictModeVisualOptions ->原创 2017-07-17 14:59:41 · 1322 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- Launcher中隐藏APK图标
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92网上大多数是针对apk改动隐藏图标,但是第三方软件不一定可行,这里提供launcher中修改的方法,由网友“境界直指未来”提供分享。 以搜狗输入法为例,报名可以从/data/data/下获取diff --git a/packages/apps/Launcher3/src/com/android/原创 2017-07-17 09:37:22 · 2258 阅读 · 0 评论