修改的bug记录
2015-09-09 20:32
387 查看
bug1:字符串问题
首先复现bug:点击URL,然后connect,出现了“load url” ,将其韩文的意思改变即可。进入message的目录:packages/apps/Mms/res 进入资源文件,英文默认是values,韩文是values-ko。
在source insight中导入项目,同步文件,韩文xml乱码,因为上锁,即加密。此时用UltraEdit编辑。
cd L7-R1
cd android 编译在android目录下
.build_target.sh L7-R1 -j2 systemimage 编译
如果编译完成,相应的apk文件的时间就会更新
然后找到apk文件,复制到桌面
在cmd中执行 adb install -r 文件 就可以安装到手机上,进行查看修改的结果
比如我编辑的Mms的内容,会有相应的Mms.apk,这是就应该进入Mms的目录下,
git status 查看状态
git pull 将别人的代码拉下来,得到别人最新的代码,之后再提交自己的代码
git status 会发现自己修改过的文件变为了红色
git add [文件目录] (目录是红的文件名)
git status 会发现红色变成的绿色
git commit -m “niejianjian [版本号] 日期 问题描述”
git status 绿色的也消失
git push 提交服务器
bug2:自我练习回退操作
由于我之前提交了(commit) 了 settings.IAB 文件,所以执行git reflog会出现如下内容:ef474dc HEAD@{0}:commit :add settings.IAB 60628de HEAD@{1} : pull : Fast-foreard 418cb03git reset 60628de 回退对应的操作(撤销)
git status 此时查看状态,发现又回到了add操作以前了
git pull 取回更新
git status 查看状态
(有问题就进行处理,如需git checkout --)
git push 提交服务器
(Everything up-to-date)显示已经更新了
bug3: end key结束应用,使其不出现在recent
要求就是在应用界面,点击end key,回到桌面,并且terminating 当前的app。使其不要出现在rencent中。之前end key的操作就是直接将home key的值给了它,让它执行home的操作。
首先就是获得topActivity的名字,然后获得当前应用的pid。然后如果这个应用不在白名单中,就直接执行remove,销毁这个应用
// keyCode = KeyEvent.KEYCODE_HOME; [Niejianjian 0916 delete ] // The following contents : Niejianjian 0916 add // String oldTopAcName = null; String nowTopAcName = null; // int persistentId = 0; ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE); if(mActivityManager != null && down){ ComponentName cn = mActivityManager.getRunningTasks(1).get(0).topActivity; oldTopAcName = cn.getClassName(); List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasksForUser( 1, ActivityManager.RECENT_IGNORE_UNAVAILABLE, UserHandle.CURRENT.getIdentifier()); ActivityManager.RecentTaskInfo recentInfo = recentTasks.get(0); persistentId = recentInfo.persistentId; } // Go home! if(!down){ if(!SystemProperties.getBoolean("persist.sys.keyguard.lock", false) && !SystemProperties.getBoolean("persist.sys.factorykit.keytest", false)) { if(!mHomeLongPressed) { boolean ignoreGoHome=false; if(mActivityManager != null){ ComponentName cn = mActivityManager.getRunningTasks(1).get(0).topActivity; nowTopAcName = cn.getClassName(); android.util.Log.i("KEY_Niejianjian_Test","oldTopAcName = " + oldTopAcName ); if (!oldTopAcName.contains("com.android.launcher2.Launcher") && !oldTopAcName.contains("com.bns.ptt.daehap.a1") && !oldTopAcName.contains("com.android.dialer") && !oldTopAcName.contains("com.android.music")){ android.util.Log.i("KEY_Niejianjian_Test","oldTopAcName = " + oldTopAcName + " & persistentId = " +persistentId ); if(oldTopAcName.contains("com.android.deskclock")){ Settings.System.putInt(mContext.getContentResolver(),"com.android.deskclock.remove.key",1); } if(oldTopAcName.contains("com.android.contacts")){ Settings.System.putInt(mContext.getContentResolver(),"com.android.contacts.remove.key",1); } am.removeTask(persistentId, ActivityManager.REMOVE_TASK_KILL_PROCESS); } Log.d("cgp","current activity className:"+cn.getClassName()); if(cn.getClassName().equals(filterActivityName[0]) || cn.getClassName().equals(filterActivityName[1])){ ignoreGoHome = true; } } Log.d("cgp","ignoreGoHome:"+ignoreGoHome); if(!ignoreGoHome){ launchHomeFromHotKey(); } } return -1; }
bug4:end key no tone sound
在keycode == KeyEvent.KEYCODE_ENDCALL_HOME中,加上以下代码,就获得获得系统声音了AudioManager audioManagerw = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); if (audioManagerw != null && down && repeatCount==0) { audioManagerw.playSoundEffect(AudioManager.FX_KEY_CLICK); }
bug5:PTT Key 和power同时点击过快时,出现的问题
锁屏的流程是这样的,当点击power -> screen off -> LockScreen onCreate在screen off状态,点击ptt key,就是点亮屏幕,然后调出ptt界面,拨出电话。
如果点击了power,极短的时间之后点击ptt键,就会没有出现LockScreen。最后跟踪流程,发现点击power之后,延迟了500ms才调用的LockScreen
mHandler.postDelayed(mLockKeyEnable, 50);将500ms改为50ms,就很大程度的避免了这个问题。
bug6:ptt key和power点击过快
正常流程是power灭屏,起lockscreen,然后ptt,亮屏,销毁lockscreen,然后起ptt界面,ptt finished,lockscreen 起。有时候会出现这样一个bug,也是极快点击的情况下,偶尔会出现ptt界面和lock screen界面同时出现,当ptt finished的时候,就会出现黑屏。
这是因为ptt界面起的时候,要判断当前的界面如果是锁屏,就会销毁锁屏,然后弹出ptt界面。
增加判断,当起lockscreen的是,判断当前界面是不是ptt,如果是的话,就重复延迟发送,每过100ms,判断一下,直到当前界面不是ptt的时候,再启动lockscreen界面
private Runnable mLockKeyEnable = new Runnable() { @Override public void run() { //Log.d("chen","LockKey Runnable"); if(!mLockKeyHandle) return; //Log.d("chen","mLockKeyEnable Runnable : mPowerManager.isScreenOn()="+mPowerManager.isScreenOn()); // niejianjian 20151029 add "&& lockFlags" if(mPowerManager.isScreenOn() && lockFlags) return; // niejianjian 2015 add and modified following contents ComponentName cn = mActivityManager.getRunningTasks(1).get(0).topActivity; android.util.Log.i("NieJianJian_LockSreen","class --> PhoneWindowManager ||| mLockKeyEnable ---> topAtyName = " + cn.getClassName()); if (cn.getClassName().equals("com.bns.ptt.daehap.a1.ui.callactivity.CallUIActivity")){ lockFlags = false; ii++; android.util.Log.i("NieJianJian_LockSreen","++++++++++++++++++++ " + ii); mHandler.postDelayed(mLockKeyEnable, 100); } else { try { android.util.Log.i("NieJianJian_LockSreen","--------------------- " + ii); lockFlags = true; mLockKeyHandle = false; Intent lock = new Intent(); lock.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); lock.setClassName("com.unc.lockscreen","com.unc.lockscreen.LockSreen"); mContext.startActivityAsUser(lock, UserHandle.CURRENT); ii = 0; } catch (ActivityNotFoundException e) { Slog.w(TAG, "No activity to handle assist action.", e); } } } };
bug7:快速多次点击power key 会出现亮屏时出现lockscreen界面
在lockscreen的locksreen.java文件中,会修改下面这个值,lockscreen开启后,会将下值修改为true。android.os.SystemProperties.getBoolean("persist.sys.keyguard.lock", false)点击power键的时候,就会判断这个值,来决定lockscreen的销毁和开起。
由于点击过快,发送还有50ms的延迟,就会出现错误。
if (!down) { mHandler.postDelayed(new Runnable() { @Override public void run(){ if(android.os.SystemProperties.getBoolean("persist.sys.keyguard.lock", false)) { //android.util.Log.i("NieJianJian_LockSreen","class --> PhoneWindowManager ||| run()" ); KeyLockDisable(); } } },500); }
相关文章推荐
- 使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果
- BC水题--The Factor(质因分解)
- Testlink的学习总结
- POJ_3281_Dining(最大流dinic模板)
- poj 3280
- 学习matlab 1
- 国家模式c++
- keil4中逻辑分析仪使用
- PS技巧记录
- 联考1day2总结
- 进程与线程的区别和联系
- hdu 5012__Dice
- Uva-1347 Power Calculus
- Linux2.6.32内核笔记(2)内存管理子系统
- this关键字:
- db2使用Java存储过程实现MD5函数
- 误mlogc.c:32:23: error: curl/curl.h: No such file or directory
- AdaultBird----我的黑马程序员之路!Chapter1---开启征程!
- CallBack 的理解和java实现
- HTTP状态码 304 页面未修改