android 点滴记录
1、AndroidM环境下,在framework层添加代码会对jar包的package name进行检查,并提示”unknown package name of class file”怎么解决?
产生这个报错是因为AndroidM新添加了对framework下jar包的package name检查,解决的方法是在
build/core/tasks/check_boot_jars/package_whitelist.txt
文件中按照规则将新增代码添加到白名单
name检查的逻辑由build/core/tasks/check_boot_jars/check_boot_jars.py脚本实现
这个害我一下午,翻来拂去的找问题。甚至把out目录都删了都不行。 特别手机oem厂商,有时候需要定制,添加jar包就会出这个问题。关键是mm能过。全部编译就不过。
2、输入编辑框中,在一行先输入几个汉字,再输入多个英文字母到换行,在换行的时候,发现最后一个汉字随英文换到下一行怎么解决?
一行文字包括连续的至少两个中文字符和若干个英文字符,在换行的时候,下一行的的开始是从上一行最后两个中文字符中间断开的
举例:
如”汉字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(中日韩)这些象形文字字符都会有这个现象
3、如何设置自动获取时区默认开关?
在frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中,修改如下定义:
true
true为默认开启,false为默认关闭
4、如何设置自动旋转屏幕默认开关?
在frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中,修改如下定义:
false
true为默认开启,false为默认关闭。
5、如何修改密码解锁最大连续错误输入的密码次数?
使用密码解锁时,连续输入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到对应的目录中去.
6、如何修改密码解锁输入错误密码次数超过限制之后限制输入的时间?
在使用密码解锁的前提下,解锁时输入错误密码次数超过限制时就会限制一段时间不能输入密码
下面的修改就可以让用户连续输入错误密码超时限制之后等待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到对应的目录中去
7、如何修改图案解锁最小有效连接点个数?
在切换到图案解锁时创建图案解锁密码时至少需要连接的节点个数及进行解锁时输入的有效密码至少需要连接的节点个数默认都为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到对应的目录中去
8、如何监听屏幕解锁事件?
开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在配置里面注册action为
android.intent.action.USER_PRESENT的广播,则可以监听解锁事件.
1、屏幕解锁时,发送广播的代码:
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);
}
2、在应用中注册监听解锁广播:
<receiver android:name="com.home.testscreen.MyReceiver">
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
9、如何禁用滑动解锁的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>
10、解锁界面触摸锁图标或滑动到某一功能上会有震动反馈,其强度如何调整
修改frameworks\base\packages\keyguard\res\layout\Keyguard_glow_pad_view_uui.xml如下震动时长即可,0是不震动,数值越大震动感越强
- prvandroid:vibrationDuration="20"
+ prvandroid:vibrationDuration="4
android 点滴记录的更多相关文章
- android 点滴记录 ICCID IMSI IMEI MEID 关系 和 区别,相关参数在什么情况下可以获取...
1:ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXX ...
- Android学习记录(3)—Android中ContentProvider的基本原理学习总结
一.ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数据 ...
- Android项目记录点滴2
1.把本机地址广播出去private void sendIP() { try { DatagramSocket dgSocket = new DatagramSocket(8989); byte[] ...
- Android项目记录点滴
服务器端:(根据Apache POI库函数其中SlideShow表示PPT文档,Slide表示某一张幻灯片) 1.先把电脑中的PPT文件读入到一个字节数组中.(输入流-->字节数组-->输 ...
- Android Framework 记录之二
接着上次的记录,续写. 23.services文件夹 文件 描写叙述 class AlarmManagerService extends IAlarmManager.Stub { //定时管理服务 p ...
- Android开发记录(转)
一.Android模拟器相关 1. Android模拟器安装 Market 模拟器默认没有安装 Market,看到网上有较为复杂的安装方法,也有1个简单的,试了简单的,在 Android2.2 模拟器 ...
- mono for android 学习记录
C#开发Android应用实战(全 扫描 中文版) 学习记录: 拖完控件后,不要急着按F5,需要重新生成,才能自动修改 Resource.Designer.cs 文件 1. Activity 是基于a ...
- Android学习记录:ViewPager实现欢迎页
许多APP在第一次启动的时候,都会有welcome page.近日尝试利用ViewPager来实现Welcome Page. d0711 完成记录,跟新下载地址 =================== ...
- Android学习记录:界面设计
本片文章将记录进行android界面开发时积累的知识 包括 activity全屏 activity跳转 button设计 逐个输入编辑框设计 d0710 合并旧文章总结更新 d0721 添加内容 == ...
随机推荐
- Tree Restoring
Tree Restoring Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement Aoki lo ...
- java 数据结构 队列的实现
java 数据结构队列的代码实现,可以简单的进行入队列和出队列的操作 /** * java数据结构之队列的实现 * 2016/4/27 **/ package cn.Link; import java ...
- Listview多条目展示
//---------------主要是适配器里面------------------------------------- package com.bwie.test.adapter;import ...
- 初探JavaScript魅力(五)
JS简易日历 innerHTML <title>无标题文档</title> <script> var neirong=['一','二','三','四','五' ...
- HDU1253--胜利大逃亡--HDU1240--Asteroids!--简单三维BFS
胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- Java的动态加载及其安全性问题
1.什么是动态加载 Class Loaders是动态加载Java类与Resource的一种机制.它支持Laziness,type-safe linkage,user-defined extensibi ...
- android:contentDescription的作用是什么
在写Android的XML布局文件时,在ImageView或ImageButton中经常会碰到一个提示: Missing contentDescription attribute on image. ...
- PAT (Advanced Level) 1105. Spiral Matrix (25)
简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<map> #incl ...
- 微信小程序Server端环境配置
主要内容:1. SSL免费证书申请步骤2. Nginx HTTPS 配置3. TLS 1.2 升级过程 微信小程序要求使用 https 发送请求,那么Web服务器就要配置成支持 https,需要先申请 ...
- 提升html5的性能体验系列之三流畅下拉刷新
下拉刷新 为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机(Android4.4以下)上,DIV动画经常出现卡顿现象(特别是图文列表的情况).解决方案还是web ...