Android Frameworks 开发总结之七
1.修改android 系统/system/下面文件时权限不够问题
下面提到的方式目前在Bobcat的userdebug image上测试可行,还没有在user上测试过.
修改前:
leif@leif:~$ adb root
restarting adbd as root
leif@leif:~$ adb disable-verity
verity is already disabled
using overlayfs
Now reboot your device for settings to take effect
重启机器后:
leif@leif:~$ adb root
restarting adbd as root
leif@leif:~$ adb remount
[libfs_mgr]dt_fstab: Skip disabled entry for partition vendor
[libfs_mgr]dt_fstab: Skip disabled entry for partition vendor
[libfs_mgr]dt_fstab: Skip disabled entry for partition vendor
[libfs_mgr]dt_fstab: Skip disabled entry for partition vendor
[libfs_mgr]dt_fstab: Skip disabled entry for partition vendor
remount succeeded
2.添加公共的系統資源
添加公共的系統資源, 有兩種方法
-
將需要的資源添加到SDK中進行使用 比如添加資源到SDK中的Settings和BatteryManager中。添加資源後在開始編譯前, 需要將此資源聲明為@hide或執行make update-api操作, Android 10以後須執行make api-stubs-docs-update-current-api
-
將需要添加的資源作為私有的標識來使用, 添加資源後,需要在frameworks/base/core/res/res/symbols.xml中聲明此資源, 然後在java代碼中使用com.android.internal.R.來使用
3.查找某一個控件的ID
有的時候我們在debug某一個bug的時候需要查找其中的一个控件的ID,这个时候我们可以使用SDK中提供的tool进行查找,运行SDK/tools/monitor 脚本,在打开的Android Device Monitor中选中左上角的设备,再点击Dump View Hierarchy for UI Automator , 在中间出现的Device UI中用鼠標点击需要查找的控件的区域,在右侧会把当前点击区域的所有控件都列出来。
4.關於Snapdragon camera中的一些問題修改
4.1 菜單提示位置不正確
XXX機器由橫屏轉爲豎屏後,snapdragon camera的filters 和 scene mode提示位置不正確。修改位置:packages/apps/SnapdragonCamera/src/com/android/camera/ui/MenuHelp.java
在setLocation中修改方向值
private void setLocation(int w, int h) {
int rotation = getUnifiedRotation();
toIndex(mHelp0_0, w, h, rotation, 1, 3, HELP_0_0_INDEX);
toIndex(mHelp1_0, w, h, rotation, 2, 2, HELP_1_0_I