android 点滴记录

一、AndroidM环境下,在framework层添加代码会对jar包的package name进行检查,并提示”unknown package name of class file”怎么解决?java

产生这个报错是由于AndroidM新添加了对framework下jar包的package name检查,解决的方法是在android

build/core/tasks/check_boot_jars/package_whitelist.txt 
文件中按照规则将新增代码添加到白名单git

name检查的逻辑由build/core/tasks/check_boot_jars/check_boot_jars.py脚本实现ruby

这个害我一下午,翻来拂去的找问题。甚至把out目录都删了都不行。 特别手机oem厂商,有时候须要定制,添加jar包就会出这个问题。关键是mm能过。所有编译就不过。ide

 

二、输入编辑框中,在一行先输入几个汉字,再输入多个英文字母到换行,在换行的时候,发现最后一个汉字随英文换到下一行怎么解决?测试

一行文字包括连续的至少两个中文字符和若干个英文字符,在换行的时候,下一行的的开始是从上一行最后两个中文字符中间断开的 
举例: 
如”汉字abcdefghijklmn” 
换行结果是: 
“汉 
字abcdefghijklmn”//这就会影响正常的中文阅读 
这是android 原生设计,最新的代码也是这样设计的。默认把每一个汉字字符看成一个换行单元。同时其余的一些特殊符号也是 
空格 / -等 
都会被看成独立的换行单元实现换行 
为了android系统中文使用者的用户习惯, 
如今修改为: 
可执行自动中英文换行,换行位置是从最后一个中文字符的后面开始,这样的话就不影响正常的中文阅读习惯 
修改处在: 
frameworks/base/core/java/android/text/StaticLayout.java 
(j + 1 >= spanEnd || !Character.isDigit(chs[j + 1 - paraStart]))) || 
((c == CHAR_SLASH || c == CHAR_HYPHEN) && 
(j + 1 >= spanEnd || !Character.isDigit(chs[j + 1 - paraStart]))) || 
(c >= CHAR_FIRST_CJK && isIdeographic(c, true) && 
j < spanEnd && isIdeographic(chs[j - paraStart], false))) { 
okWidth = w; 
ok = j + 1; 
这里的修改其实把换行的开始位置的检测,从start向后面移动了一位 
这样修改以后的结果是(参考上述例子): 
“汉字 
abcdefghijklmn”//作到不影响正常的中文阅读 
一样对于CJK(中日韩)这些象形文字字符都会有这个现象ui

三、如何设置自动获取时区默认开关?spa

在frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中,修改以下定义: 
true 
true为默认开启,false为默认关闭设计

四、如何设置自动旋转屏幕默认开关?code

在frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中,修改以下定义: 
false 
true为默认开启,false为默认关闭。

五、如何修改密码解锁最大连续错误输入的密码次数?

使用密码解锁时,连续输入5次错误密码就会弹出警告并锁定输入框不能继续输入密码,而且等待必定的时间以后才能继续输入密码。 
下面的修改就可让用户连续输入10次错误密码以后才弹出警告并锁定输入框而不能输入密码 
修改文件frameworks/base/core/java/com/android/internal/widget/LockPatternUtils.java 
修改前: 
public static final int FAILED_ATTEMPTS_BEFORE_TIMEOUT = 5; 
修改后: 
public static final int FAILED_ATTEMPTS_BEFORE_TIMEOUT = 10; 
值得注意的是,若是修改后测试时使用模块编译进行验证,不只须要编译该文件所在的模块frameworks/base,还须要编译frameworks/base/packages/Keyguard模块并将这个两个模块编译生成的文件push到对应的目录中去.

六、如何修改密码解锁输入错误密码次数超过限制以后限制输入的时间?

在使用密码解锁的前提下,解锁时输入错误密码次数超过限制时就会限制一段时间不能输入密码 
下面的修改就可让用户连续输入错误密码超时限制以后等待60s后才能再次输入密码 
修改文件frameworks/base/core/java/com/android/internal/widget/LockPatternUtils.java 
修改前: 
public static final long FAILED_ATTEMPT_TIMEOUT_MS = 30000L; 
修改后: 
public static final long FAILED_ATTEMPT_TIMEOUT_MS = 60000L; 
值得注意的是,若是修改后测试时使用模块编译进行验证,不只须要编译该文件所在的模块frameworks/base,还须要编译frameworks/base/packages/Keyguard模块并将这个两个模块编译生成的文件push到对应的目录中去

七、如何修改图案解锁最小有效链接点个数?

在切换到图案解锁时建立图案解锁密码时至少须要链接的节点个数及进行解锁时输入的有效密码至少须要链接的节点个数默认都为4. 
下面的修改就修改图案解锁在建立密码和解锁输入密码时最小链接节点个数,该修改会将最小链接节点个数从4设置为2. 
修改文件frameworks/base/core/java/com/android/internal/widget/LockPatternUtils.java 
修改前: 
public static final int MIN_LOCK_PATTERN_SIZE = 4; 
修改后: 
public static final int MIN_LOCK_PATTERN_SIZE = 2; 
值得注意的是,若是修改后测试时使用模块编译进行验证,不只须要编译该文件所在的模块frameworks/base,还须要编译frameworks/base/packages/Keyguard模块并将这个两个模块编译生成的文件push到对应的目录中去

八、如何监听屏幕解锁事件?

开发后台服务的时候常常须要对屏幕状态进行判断,若是是想要监听屏幕解锁事件,能够在配置里面注册action为
android.intent.action.USER_PRESENT的广播,则能够监听解锁事件. 
一、屏幕解锁时,发送广播的代码: 
frameworks\base\packages\keyguard\src\com\android\keyguard\KeyguardViewMediator.java

private static final Intent USER_PRESENT_INTENT = new Intent(Intent.ACTION_USER_PRESENT) .addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); private void sendUserPresentBroadcast() { final UserHandle currentUser = new UserHandle(mLockPatternUtils.getCurrentUser()); mContext.sendBroadcastAsUser(USER_PRESENT_INTENT, currentUser); }

 

二、在应用中注册监听解锁广播:

<receiver android:name="com.home.testscreen.MyReceiver"> <intent-filter> <action android:name="android.intent.action.USER_PRESENT" /> </intent-filter> </receiver>

九、如何禁用滑动解锁的menu解锁功能?

滑动解锁menu解锁功能是android的原生设计,平台4.4的版本已使用代码将该功能禁用,目前平台5.0和5.1的版本还没有禁用该功能。 
若是您不想使用该功能可使用以下修改: 
修改文件frameworks/base/packages/Keyguard/res/values/config.xml

- <bool name="config_disableMenuKeyInLockScreen">false</bool> + <bool name="config_disableMenuKeyInLockScreen">true</bool>

十、解锁界面触摸锁图标或滑动到某一功能上会有震动反馈,其强度如何调整

修改frameworks\base\packages\keyguard\res\layout\Keyguard_glow_pad_view_uui.xml以下震动时长便可,0是不震动,数值越大震动感越强

- prvandroid:vibrationDuration="20" + prvandroid:vibrationDuration="4
相关文章
相关标签/搜索