前言
工作效率提升的几大块:
1、思路
2、将思路转化为可行方案并实施下去,这里就分为两点:
1)制定方案,看你对Android框架和编程语言的理解
2)工具的熟练程度
一、git操作汇总
一)、git生成密钥:
生成git密钥
git config --global user.email "Your Name@example.com"
git config --global user.name "Your Name"
ssh-keygen -t rsa
在~/.ssh目录下会生成id_rsa.pub文件,拷贝这个文件并修改为你的名字拼音.pub发送给git管理员,为自己创建git证号
二)、git检出代码操作
1、检出代码:
git clone git@192.168.1.73:SAGETEL82_V2.10_WET_KK
2、查看服务器分支:
git branch -a
注:目前服务器上的分支:
* L7_Project (*表示当前工作区在L7_Project分支上)
3、检出分支 git checkout L7_Project(可以对已有文件进行覆盖)如:
git checkout /home/L7_git/SAGETEL82_V2.10_WET_KK/alps/packages/apps/Dialer
三)、git提交命令
1、修改的代码与纯洁的分之代码比较
2、git pull origin (更新代码)
Git status 查看修改状态
3、git add .(添加变动的所有代码,要保持分支代码的纯洁)
注:可以add指定文件如:git add ./mediatek/configgetel82_wet_kk/ProjectConfig.mk
4、git commit -am "模块:联系人 修改*+)链接USB访问分享文件时,手势拨号修改提示语。"(进行提交操作)
6、git push origin(进行提交代码操作)
7、验证提交:
1)git log(显示提交log,找到对应得提交id)
2)git show aa2115732b7b36a2e813bf83bfb5fe7f6eb47d30(显示提交结果)
四)、git还原指定版本
1、先删除 rm -rf *
git reset --hard ID
2、比如要还原到GIT ID为 13ce8b7a6afd69cea242f8b15c1b1ef80006cc1b 的版本
命令行输入 git reset --hard 13ce8b7a6afd69cea242f8b15c1b1ef80006cc1b
注:这样方便版本回退查找问题
五)、git图形化工具安装使用
二、beyongcompare
一)、比较完成后,我们可以设置一个过滤器,过滤不需要合并的文件。比如,在.NET项目下,VS的user文件、VSS和TFS的版本控制文件、Bin、Debug等目录都可以忽略。
二)、Beyond Compare将文件夹比较更进一步细分(点击右边的向下箭头即可显示分类):
1.显示差异:所有的不同都显示出来,只要是有不同的都列出来。
2.显示不孤立部分:就是文件名相同的文件。
3.显示有差异但不孤立部分:在文件名相同的情况下,显示内容有差别的。
4.显示孤立:即显示出两个文件夹只有单独的一个多余的文件。
5.其它的几个选项可以根据字面意思很容易理解,我这里就不重复介绍。
三)、 附件中的ppt
三、source insight
一)、界面了解
1、工具栏
1) 蓝黑色的箭头可以转到你前一次和后一次编辑过得地方
2) 可以在不同的查找结果之间跳转
2、标题窗口
快速定位某个函数、变量、宏
3、编辑区
4、工程窗口
快速定位我们需要找的类文件
5、定义窗口
自动显示所选择的变量、函数、宏的定义
二)、新建工程
1、自定义工程文件路径,保持工程代码干净
2、首先打开Source Insight软件,配置好软件所认识的文件后缀,点击菜单栏上Options->Document Options,在Document Type下拉列表中,选择C Source File,然后在右边File filter:文本框中添加一些重要文件后缀;*.S;*.lds;Kconfig;*defconfig;*.in;Makefile等(否则点击Add Tree添加目录树时,一些重要文件不被加入到工程,则要手动一个个加入)
3、
第一种方式:
通过在File Name中输入要阅读源代码文件的名称,点击“Add”按钮将其加入;
第二种方式:
通过其中“Add All”和“Add Tree”两个按钮可以将选中目录的所有文件加入到工程中,其中“Add All”选项会提示加入顶层文件和递归加入所有文件两种方式,而“Add Tree”相当于“Add All”选项的递归加入所有文件,可以根据需要使用;
第三种方式(比较常用)
“Add Tree”一些。由于该程序采用了部分打开文件的方式,没有用到的文件不会打开,所以,加入数千个文件也不用担心加入的文件超出程序的所能容忍的最大值;
4、Synchronize file(同步文件)
Project->Synchronize Files进行同步生成索引
三)、快捷键
1、ctrl+/ 全局搜索关键字
注:
1)Case Sensitive:查找时区分大小写
2)Skip Inactivie Code:查找如#if 0... #endif内的代码不在查找之列
3)Skip Comments: 注释内的代码不在查找之列
4)Search Only Comments: 之查找注释内的代码
5) 下拉列表就是左边选项的组合,我们使用默认的就可以
2、按住“ctrl”键不动,鼠标指向变量或函数再点击一下,则进入了定义;
3、Ctrl+G如果想跳到某一行热键为;
3、Alt+F12显示中的每个字符宽度一致;
4、shift+f8会黄色标亮光旁边的关键字(变量、函数),有助于理清代码流程;
5、括号配对高亮:
“在前括号左侧,后括号左侧” 双击鼠标左键,可以选定匹配括号和其中内容(<>,(),L{R},[]之间)
6、文件中查找操作
1)Ctrl+F :本文件内查找
2)F3 :本文件查找结果的上一个
3)F4 :本文件查找结果的下一个
4)Ctrl+M :创建或查找书签,方便下次找回此位置
7、ctrl + G 跳转到指定的行
8、复制一行 : Ctrl+K
9、剪切一行 : Ctrl+U
10、粘贴一行 : Ctrl+P
11、插入一行 : Ctrl+I
12、删除一行 : Ctrl+J
13、关闭文件 : Ctrl+W
14、关闭所有文件 : Ctrl+Shift+W
四)、自定义设置
1、添加ctrl+a功能
Options -> Key Assignments:通过关键词select找到select all,更改为ctrl +a
2、设置字体大小
Options->Document Options->Screen Fonts 这是字体
3、设置背景色:
Options->preference->color->windows background设置背景色(护眼色:85,90,205)
4、删除注释时半个汉字问题(删除一个汉字,汉字没有了,但会多出一个问号?)
方法:
① 将 SuperBackspace.em 复制到 Source Insight安装目录;
② Project→Open Project,打开Base项目;
③ 将复制过去的SuperBackspace.em添加入Base项目;
④ 重启SourceInsight;
⑤ Options→Key Assignments,将Marco: SuperBackspace绑定到BackSpace键;
SuperBackspace.em 的源码在博文最后面,复制保存为SuperBackspace.em即可,或者可以在这里直接下载:http://pan.baidu.com/share/link?shareid=101784&uk=3204866771
四、eclipse工具集
五、Linux shell命令
一)、shell快捷键使用
1、上下箭头调出历史命令
2、Ctrl+a跳到第一个字符前
3、Ctrl+u删除提示符前的所有字符
4、Ctrl+k删除提示符后全部字符
5、Ctrl+e转到字符尾部
6、ctrl+r向前查找用过的命令
7、<TAB> 命令补齐
8、CTRL-C 撤消当前命令行的编辑, 另起一行.
9、清屏clear
3)linux修改文件权限:chmod 777 文件名 -R *
4)linux重启:reboot
六、adb命令:
1)adb手机中查看对应包名
adb pull data/system/packages.xml 文件中apk对应的包名
2)获取底层log
adb shell cat /proc/kmsg > log.txt
3)adb 启动apk
adb shell am start -n com.mediatek.factorymode/com.mediatek.factorymode.FactoryMode
4)设置权限:
adb shell chmod 777 system/bin/factory
5)adb的logcat抓取log重定向到log.txt文件中
adb logcat > log.txt
6)代码中的apk和编译出来的apk对应位置:
7)adb 不能识别问题
七、mtk编译技巧
一)./makeMtk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk new 编译整个工程
二)、./makeMtk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk r 重新编译Android相关的东西
三)、./makeMtk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk r dr只编译android的东西
四)、./makeMtk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk snod 将Android APK文件重新打包成system.img
五)、单独编译push对应的文件(apk、lib库文件、资源文件)
1、 ./makeMtk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk mm mediatek/factory 编译修改的模块
2、 adb push out\target\product\mt6572tdv1_phone\system\bin\factory
3、
1)如果是重新快关机需要使用adb remount (这是一个重新mount你的分区的命令
让system分区从只读变成可读可写 获得了root权限才可运行);
2)MTK平台root命令:*#*#3646633#*#*(如果是user版本)
4、如果修改的是布局文件或是图片等资源文件的话,需要动一下AndroidManifest.xml文件,将修改编译进去;
六)、编译ota压缩包用于T卡升级
./makeMtk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk otapackage
注:
user版本:
eng版本:
./makeMtk -o=TARGET_BUILD_VARIANT=user 工程名 new
./mk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk new
可以将命令链接起来使用:
git clone git@192.168.1.73:SAGETEL82_V2.10_WET_KK &&&cd / &&./mk -o=TARGET_BUILD_VARIANT=user sagetel82_wet_kk new
八、Flash_tool 使用
一)、全擦操作
1、ctrl + shift+v
2、options -> physically Format/Readback
3、点击 -> 点击ok -> 插上手机进行擦除操作
4、点击 插上手机进行下载操作
二)、半擦操作
1、点击 进行半擦操作
九、log 的抓取与分析
一)log获取方式
1、Eclipse 抓取
1)根据信息类型过滤log
那个显示框上面还有个下拉列表选项可以选择过滤哪些信息。
a、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,代码实现就是Log.v("","");
b、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择
c、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息
d、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。
e、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。
log的过滤
2)自定义标签,过滤log
点击 添加Filter Name 和 by log Tag 来过滤代码中的Log.v("yaoming","ringTone[0] == "); log信息
2、adb logcat >main.txt 重定向log
3、mtklog
二)Mtklog 简介
1, radio log
线:usb cable
命令: adb logcat –b radio –v time >radio.txt
-v time: 表示log中加入了时间信息
2, main log
main log和我们从DDMS中看到的log是一致的
线: usb cable
命令: adb logcat –b main –v time >main.txt
-v time: 表示log中加入了时间信息
3, event log
event log属于system log
线: usb cable
命令: adb logcat –b events –v time >events.log
-v time: 表示log中加入了时间信息
4, kernal log
使用超级终端来抓kernal log,请参考以下步骤: