android开发技能总结

1.df -hl         查看磁盘剩余空间
3.Ctrl + E       显示最近打开的文件,可以快速再次打开这些文件
4.Ctrl+Win+下键 最小化当前桌面应用
5.设置android studio 快捷键为Eclipse模式,File-->Settings-->KeyMap 选择Eclipse即可
6.Ctrl+pgup/pgdn 切换代码视图.
7.ctrl+k 正方向搜索;ctrl+shift+k反方向
8.Ctrl + Home 光标定位到文件开头
  Ctrl + End  ...结尾
9.Ctrl + t :查看抽象方法或者接口被实现

2018.03.20
1.查看远程分支:git branch -r
2.git checkout -b trident-rom smartisanos/trident-rom
  创建本地分支:'trident-rom' 让其跟踪远程分支 'smartisanos/trident-rom',并切换到 'trident-rom'分支
3.在当前工程内查找文本【Ctrl+Shift+F】
  备注:和搜狗输入法冲突,先切换到英文输入法
4.sudo cp /home/lsk/Downloads/jdk-8u161-linux-x64.tar.gz /usr/local/java

在线copy流程:
1). cd smb://172.16.2.225/flash  
    cd smb://172.16.2.18/flash/
2). cd /daily/osborn/rls-4.2/release-20180405
3). cp -r SE-mol%osborn-rom-4.2.0-rls-osborn-userdebug-20180405-015531-32g /home/ylxing/version_update

本地刷机流程:
首先:
adb disable-verity
adb remount

adb shell
cd sys/hwinfo/
cat secboot_version
secboot_version=SE

sudo chmod 777 SE-mol%osborn-rom-4.2.0-rls-osborn-userdebug-20180405-015531-32g/ -R(递归更改)
adb reboot edl
cd SE-mol%osborn-rom-4.2.0-rls-osborn-userdebug-20180405-015531-32g/
sudo ./edl-flash.sh
注:user版本无法进入user模式,关机,插上短接线,然后长按
跳过开机向导
adb root
adb shell am start -n com.smartisanos.setupwizard/com.smartisanos.setupwizard.SetupWizardCompleteActivity

全局关键字搜索:
4.find ./ -name "*.java" | xargs grep "搜索条件"
4.1 sgrep "搜索条件"
5. 同步代码命令: repo sync -j8
6. adb logcat | grep "ylxing"
   6.1 抓取全栈log: adb logcat -v time -->/home/ylxing/keyguard03.txt
     2.实时log显示: adb logcat  | grep AndroidRun
7. 想要抓取当前方法被谁触发,用一下方式添加Log:
   android代码中抓取Trace log的方法:Log.d("ylxing","onResume:" + Log.getStackTraceString(new Throwable()));
8.修改默认的编辑器:
  vi .git/config
  editor = vim
9.代码上库流程:
**0)git branch -vv 查看本地分支与远程分支的追踪关系;
  1) git branch -r
     m/sanfrancisco -> smartisanos/master
     smartisanos/master
**2)git push smartisanos HEAD:refs/for/...
    git push smartisanos HEAD:refs/for/cts/ocean-mol-6.2.0-20180702
提交代码流程:
 1).git add .
 2).git commit -s (使用模板添加相关信息)
 3).git push smartisanos HEAD:refs/for/master
 4).git reset HEAD +(文件名)  命令用于取消已缓存的内容(git reset HEAD 以取消之前 git add 添加)
 5).git mv README  README.md 对已经缓存的文件进行重命名
    如果以上命令不生效,可以使用:git rm --cached +文件名
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。
     git commit -am '修改文件名' add+commit一次性完成
注:当切换分支的时候,git 会用该分支最后提交的快照替换当前工作目录的内容,所以多个分支,不行也要多个目录

git branch
没有参数时,git branch 会列出你在本地的分支

10.打补丁:git commit --amend
11.没有merge之前可以cherry-pick,就是对已经存在的commit 进行再次提交
12.git branch -a | grep 4.2  过滤名称中包含4.2字符的分支
15.git branch -vv 查看本地分支与远程分支的追踪关系;
   git branch --set-upstream master smartisanos/trident-rom
   上面命令指定本地master分支追踪远程smartisanos/trident-rom分支
16.git stash  将当前分之的修改暂时保存,然后就可以创建并切换到其他新的分支了
   git stash pop 恢复上次临时保存的修改
17.git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:
   1).找一个干净目录,假设是git_work
   2). cd git_work
   3). git clone http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
   4). cd project
   5). git branch -a,列出所有分支名称如下:
      remotes/origin/dev
      remotes/origin/release
   6). git checkout -b dev origin/dev,本地创建dev分支病追踪远程的origin/dev分支

19.Android系统为每一个应用程序都设置一个硬性的Dalvik Heap Size最大限制阈值,这个阈值在不同的设备上会因为RAM大小不同而各有差异。
   如果你的应用占用内存空间已经接近这个阈值,此时再尝试分配内存的话,很容易引发OutOfMemoryError错误

20. Understanding VSYNC
    Refresh Rate:代表了屏幕在一秒内刷新屏幕的次数,这取决于硬件的固定参数,例如60Hz。
    Frame Rate:代表了GPU在一秒内绘制操作的帧数,例如30fps,60fps。
    GPU会获取图形数据进行渲染,然后硬件负责把渲染后的内容呈现到屏幕上,他们两者不停的进行协作。
    刷新频率和帧率并不是总能够保持相同的节奏
    如果发生帧率与刷新频率不一致的情况,就会容易出现Tearing的现象(画面上下两部分显示内容发生断裂,来自不同的两帧数据发生重叠
21.Resterization栅格化:
   绘制那些Button,Shape,Path,String,Bitmap等组件最基础的操作。它把那些组件拆分到不同的像素上进行显示。这是一个很费时的操作,GPU的引入就是为了加快栅格化的操作。

23.全部工程导入,先全编代码:
   . build/envsetup.sh
   lunch
   然后根目下执行:make idegen
   执行脚本:
   sh ./development/tools/idegen/idegen.sh
   执行完毕后会在根目录生成对应的android.ipr、android.iml 的配置文件
   注意:其实以上2部分的操作都可以不用做,只要让其他已经生成好此2个文件的同事发给你扔到代码根目录即可

26.使用一下命令可以精确查看当前文件某一行谁在什么时候做了什么样的修改:
   git blame -L 366,366 ./overlay/lollipop/src/SmartisanStackCover.java
   f65c0d4 (Jiang Feng 2018-03-05 15:04:29 +0800 366)         KeyguardUpdateMonitor.getInstance(mContext).setProximityNearToast();
   git show f65c0d4
   gitk

   git log                          查看所有提交历史记录
   git log --oneline                用 --oneline 选项来查看历史记录的简洁的版本。
   git log --oneline --graph        用 --graph 选项,查看历史中什么时候出现了分支、合并
   git log --reverse --oneline      用 '--reverse'参数来逆向显示所有日志。
   git log --author=Linus --oneline -5  用命令:git log --author , 例如,比方说我们要找 Git 源码中 Linus 提交的部分
   git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
                                        Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 --no-merges 选项以隐藏合并提交)
   

adb push SmartisanSystemUI.apk system/priv-app/SmartisanSystemUI

adb shell pkill launcher

27.使用Android Studio导入源码:
   1). 全编源代码
   2). mmm development/tools/idegen/
   3). development/tools/idegen/idegen.sh
   成功后,在根目录生成对应的android.ipr

28.查看当前系统是32位还是64位:
   getconf LONG_BIT
   或者命令:uname -a, 有x86_64就是64位的,没有就是32位的

29.如果手机无法进入edl模式,而是执行相关脚本后重启,则应该插有标记的数据线,执行命令adb reboot,然后手动关机,即可进入edl模式;
30.全局搜索命令:abc-x grep -r '导航栏按键已锁定' -b surabaya-rom
31.adb shell getprop ro.debuggable  获取系统配置项的值
33.登录内网服务器:
smb://share.smartisan.cn/share/jiangchunlei/CTS
xingyanlong_ext
Ylxing1234

34.安装插件命令:
sudo apt-get install aapt

35.离线抓取log:
   0).手机登录内网:ttttt
      password:flzx3000c
   1).adb tcpip 5555
      
   2).adb shell ifconfig
      wlan0     Link encap:UNSPEC  
                inet addr:172.16.29.223  Bcast:172.16.29.255  Mask:255.255.254.0 
                inet6 addr: fe80::b60b:44ff:fe9f:4d00/64 Scope: Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:217467 errors:0 dropped:0 overruns:0 frame:0 
                TX packets:157263 errors:0 dropped:0 overruns:0 carrier:0 
                collisions:0 txqueuelen:1000 
                RX bytes:213702103 TX bytes:20363083 
   3).adb connect 172.16.29.223
   
   4).adb logcat | grep NewLauncher

36.若手机刷新版本后,停留在Settings crash界面,说明没有清理手机数据
   进入recovery界面:
   adb reboot recovery
   然后恢复出厂设置,再重启即可

37.拨号盘输入“ *#*#4838#*#* ”,开启“允许应用调用所有权限”开关

38.跑CTS之前尽量做一下如下设置,免得出现比必要的干扰。
手机端设置:
手机刚刷机或者恢复出厂设置状态
插入SIM卡(可识别手机号码),一般为联通卡
插入可用SD卡(若手机支持)
进入手机,拨号盘输入“ *#*#4838#*#* ”,开启“允许应用调用所有权限”开关
设置 -- 开启WIFI(连接CTS-only,密码为Smartisan@2017)、蓝牙、GPS(WiFi应该是翻墙)
设置 -- 关闭大爆炸、一步、闪念胶囊
设置 -- 桌面设置项,切换桌面为“安卓原生桌面”
设置 -- 屏幕和字体,屏幕熄灭时间设置为“30分钟”
设置 -- 解锁与安全,确保未设置锁屏密码
设置 -- 语言和键盘,语言设置为英文
设置 -- 关于手机,找到最下方的“软件版本”,连续点击4次开启:开发者选项
设置 -- 全局高级设置 -- 日期、时间、温度,关闭“自动设置”开关、24小时制开关
设置 -- 全局高级设置 -- 开发者选项,开启USB调试开关,关闭“通过USB验证应用”开关,分别打开“总是允许USB安装应用”/“充电时屏幕不熄灭”/“任何时间屏幕不熄灭”开关

39.cts测试环境请到smb://share.smartisan.cn/share/jiangchunlei/CTS 下载

40.代码编译:
  . build/envsetup.sh  

41.查看最近一次window切换动作:  
   adb shell dumpsys window windows | grep mLastUsedAppTransition

42.命令行启动一个activity:

   adb shell am start -n com.example.ylxing.imageviewtext/.MainActivity

43.ubuntu在log中过滤关键字"curTime =":
   grep "curTime =" ./logcat_buffer.txt
   rep-errors .repo/build.log   在编译报错log中过滤errors的相关信息 

46.模拟画中画测试用例执行shell命令:
adb shell input keyevent 26                                                     
adb shell input keyevent 224
adb shell am start -n android.server.cts/.PipActivity --es show_over_keyguard true
adb shell locksettings set-pin 1234
adb shell am broadcast -a android.server.cts.PipActivity.enter_pip
adb shell locksettings set-pin 1234
adb shell input keyevent 82
adb shell input text 1234
adb shell input keyevent KEYCODE_ENTER
adb shell locksettings clear --old 1234

发送命令模拟手机低电环境:
adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level" 3 --ei "scale" 100
adb shell am start -n android.server.cts/.TurnScreenOnDismissKeyguardActivity

可以一次性执行多个shell 命令:
48. adb root;adb remount;adb push ./out/target/product/ocean/system/framework/services.jar system/framework/

猜你喜欢

转载自blog.csdn.net/tj_shenzhendaxue/article/details/81509126