Eclipse ADT定制

配置自动补全: Windows -> preferences -> 搜索assist,修改 java xml自动触发补全: .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ 自动补全插件: Eclipse Tab自动补全 Windows -> Preference -> 搜索 Assist,C/C++、Java、XML都输入(或追加): .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_ 直接替换文件方法: # 备份文件 find eclipse/plugins -name \*jface.text\* -exec mv -v {} {}.bak \; # 复制文件到 eclipse/plugins/org.eclipse.jface.text_3.8.2.v20121126-164145.jar #(要相同版本才可以) 修改边框过大以及颜色配置: 3.1. 修改提示框背景颜色: 路径:/usr/share/themes/Greybird/gtk-2.0/gtkrc 修改: gtk-color-scheme = "tooltip_bg_color:#f2edbc\ntooltip_fg_color:#000000" # Tooltips. 3.2. 修改全局背景颜色: gtk-color-scheme = "bg_color:#cce8cf\nselected_bg_color:#398ee7\nbase_color:#fcfcfc" # Background, base. 3.3. 修改eclispe背景颜色: windows->Preferences->General->Editor->Text Editors->Backgroud color修改成#fcfcfc 3.4. 边框过大的调整方法 cd /path/to/adt vi "$(find eclipse -name e4_default_gtk.……

阅读全文

课程2: Android单元测试

Android单元测试 Java单元测试: 解决的问题:使用单元测试,对一个方法进行测试,通常包括 正确性、错误性、边界性等测试,从源头上解决缺陷引入; 使用方法:这只是一个Demo,我们部门还没有得到有力的推广(敏捷测试理论上更需要单元测试,但我们项目时间都比较紧); ./junit_gen.sh <项目目录> # 然后填写测试代码到Test.java ./test_on_android.sh 详情请参考: 链接 ####Java覆盖率报告: 解决的问题:看看到底我们测试到了哪里,哪些我们覆盖到了? 使用方法:emma,编译时应该输入参数 ant emma debug,这由Android SDK已实现; 详情请参考: 链接 ####Java单测总体报告: 解决的问题:现阶段的单元测试(Junit)并没有生成一份Jenkins可识别的报告,这里是解决Jenkins识别不到的问题; 详情请参考: 链接 ####Java单测 - 效果展示: [Java单测效果](http://200.200.0.36/28120/junit_test_android/tree/linux/ScreenShot) NDK单元测试:(C/C++) 解决的问题:与Java单元测试类似,但是针对的是NDK(C/C++),NDK的一个明显的好处是它的安全性要比Java的好; 使用方法:这是一个简单的Demo 注意到 sangfor_android目录 Jni代码放置到 sangfor_android/jni 测试代码添加到 demo_unit.cpp 然后执行 ./run_linux.sh 即可 详情请参考: 链接 注意事项:采用是gtest,它提供了很多测试实例,我们可以去学习一下 Gtest模板 ####NDK覆盖率报告: 解决的问题:覆盖率报告可以让我们清楚的知道,哪一行代码被执行了多少次 使用方法:.……

阅读全文

Android字符串资源检查

Android项目开发过程中,容易出现缺少对应中英文翻译的情况,这个Python脚本是用于检查字符串是否缺少了对应的翻译 脚本链接: Android字符串资源检查 使用方法: ./check_string_res.py packages/apps/Settings/ ./check_string_res.py packages/apps/Settings/ packages/apps/QuickSearchBox/ .. 效果如下: $ ./check_string_res.py packages/apps/Bluetooth/ ###正在检查项目packages/apps/Bluetooth/ >>> Checking res/values/strings.xml file .. - Warning: string name 'auth_notif_message' not found!!! - Warning: string name 'auth_notif_ticker' not found!!! - Warning: string name 'auth_notif_title' not found!!! - Warning: string name 'cancel' not found!!! - Warning: string name 'defaultname' not found!!! - Warning: string name 'localPhoneName' not found!!! - Warning: string name 'ok' not found!!! - Warning: string name 'pbap_authentication_timeout_message' not found!……

阅读全文

课程1: Android测试技巧(一)

常用工具 主题:主要讲解一些常用的一些命令行,及定位问题的方法 抓图:screencap screencap -p /sdcard/Pictures/ScreenShot_$(date +%F_%H-%M-%S).png Kernel版本信息: cat /proc/version Kernel接收传入参数: cat /proc/cmdline 清空并抓取Logcat日志: adb logcat -c && adb logcat -v threadtime Logcat日志显示详细时间、进程名称: adb logcat -v threadtime Top显示占用CPU、内存最多的应用程序: adb shell for n in $(busybox seq 1 100); do top -m 5 -d 3 -t -n 1 | \ busybox awk '{now=strftime("%Y-%M-%d %T "); print now $0}’ done Vmstat输出信息查看及分析(各列定义及问题排查见另一篇文档): adb shell vmstat -d 3 -n 100 | busybox awk '{now=strftime("%Y-%M-%d %T "); print now $0}' 网络分析:……

阅读全文

课程1: Android测试技巧(二)

Bug定位技巧 今天比较匆忙,准备得不算很多; 首先来针对一些普通的Bug来分析一下如何定位一个Bug的问题; 一些方法运用好,可以更好的重现一些难以重现的问题,并或许还可以提供有效的Bug解决方法。 日志输出,依据logcat输出的进程号来定位问题(如EasyConnect,以下截图仅举例): 日志输出,依据Logcat输出的详细时间来定位问题(如发现问题的那一分钟内、以下截图仅举例): 输出报告,adb bugreport 善于使用索引工具,如OpenGrok 外网可以参考:AndroidXRef 内网可以参考:AndroidOS4C, 内网有权限控制 ……

阅读全文

Android Keystore 那些事儿

生成Keystore 一键生成 Keystore keytool -genkey -v -keystore scue15K.keystore -alias scue15K \ -keyalg RSA -keysize 2048 -validity 15000 \ -keypass scue15 -storepass scue15 \ -dname 'CN=scue.github.io, OU=SDET, O=Android, L=ShenZhen, S=GuangDong, C=CN' 得到scue15K.keystore这个文件,keypass和storepass密码都是scue15 检验Keystore 使用一行命令检查Keystore信息 keytool -list -v -keystore scue15K.keystore # 需键入 storepass 使用Keystore签名 重新签名的步骤,同样适用于正常签名 zip -d in.apk 'META-INF/*' # 先清理旧的签名,假如你是重新签名的话 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /tmp/scue15K.keystore \ -keypass scue15 -storepass scue15 -signedjar out.apk in.apk scue15K zipalign -v 4 out.……

阅读全文

关于我

What’s the meaning of scue? A boy name, meaning Smart and CUtE. About me 一名全栈开发工程师 早些年的Android和Linux狂热分子 曾移植CM10.1到联想K860/K860i手机 前些年的Android嵌入式开发工程师 极致性能优化之终端可同时渲染18条1080p视频流 些许的内核开发经验,解决过终端屏幕时序问题,和USB触控设备异常问题 这些年的全栈开发工程师 RN跨平台移动应用开发 嵌入式之电信光猫插件Go和C语言混合编程 Golang后台单机可达百万级长连接 Golang后台单机高并发可达两百万QPS ……

阅读全文