android的测试工具CTS
android 的测试工具 CTS
#移动开发 #Android
1. 什么是 CTS
兼容性测试,手机设备需要通过 Android 的兼容性测试 (CTS),以确保在
android 上开发的程序在手机设备上都能运行,才能使用
android market
2. 下载及安装
git 下载的源码里包含 cts,位置在 $ANDROID/cts 目录下(android2.1
以后版本) 如果没有也可以从此处下载
git://android.git.kernel.org/platform/cts.git(源码 70M 左右)
编译
_ $ build/envsetup.sh
$ make cts _
此时生成测试计划,测试包,测试用例,和测试报告生成的目录
3. 使用
方法1:一般使用的方法
_ $ cts _ _ 注意如果用手机设备调试,用 _
_ root _ _ 权限执行 _
_
cts_host > ls --plan _ _ 列出所有 _
_ plan
_ out/host/linux-x86/cts/android-cts/repository/plan ...
android的系统升级方法对比
android 的系统升级方法对比
#移动开发 #Android
1. 说明
一般常用系统升级有两种方式 update.zip 和 fastboot,
下面介绍它们的区别和联系
2. update.zip
使用方法
一般把 update.zip 放在 SD 卡上,按 home+power
重启到烧机模式,通过在菜单中选择之后烧写
编译源码时 update.zip 会生成在 out/target/product/xxxx/
目录中(只有针对某硬件的才能生成,虚拟机版本没有,因为里面包含内核所在的
boot.img,不针对硬件,不编内核),它是对整个系统的升级
update.zip 可以更新整个系统,或更新系统的一部分,update.zip
通常包含一个 update-script
脚本,用以决定更新 zip 中的哪些部分到系统中,全部更换为更换 system,
userdata, boot
个分区的全部内容,部分更新可以更新单个或多个系统中的文件
3. fastboot
使用方法
用数据线连接手机和电脑,按 camera+power 重启到工程模式,然后在 PC 端使用
and ...
制作android的换肤包
制作 android 的换肤包
#移动开发 #Android
1. 如何做换肤包
最简单的方法是替换源码中的资源,然后重新编译
举例:修改系统公共资源——系统字体大小
修改 framework/base/core/res/res/values*/style.xml 其中的 TexAppearance
的
Large,Medium,Small 的 textSize,它们分别对应大中小字的字号
修改后,在 res 目录中重新编译 (使用 mm 命令),然后将生成的
framework-res.apk 拷到手机的
/system/framework 目录中
注意:源码中的资源必须和设备中资源相对应,因在生成 framework-res.apk
的过程中生成了资源 ID 号,而各应用通过资源
ID 号读取系统资源,所以如果 ID 号不一致,整个系统的资源就乱了
有时候我们只想换包中的某个图片,不想重编整个包,或者从网上下载的应用程序,得不到源码不能重编,但也想对其换肤。
由于 apk 是 zip
格式的压缩包,最简单的方法是解包,替换图片,然后再打包
_ $ mkdir tmp; ...
android系统支持app2sd(修改boot
android 系统支持
app2sd(修改 boot.img)
#移动开发 #Android
1. app2sd 是什么
app2sd 就是把应用程序放在 SD 卡上。有些 android 手机的用户数据分区
(userdata) 比较小(比如 G1 只有
76M),dalvik 和 cache
和用户数据就占了大半,使得安装了几个软件后就没有空间了。为了安装更多软件,在
SD
卡上划出部分空间用于存在新软件和数据,使我们的手机可以使用更多软件。
2. 原理
一般情况下都 SD 卡都默认分成一个 windows 可识别的分区(FAT)。因为有
linux
系统的权限问题,为了让它可以存放软件,需要把 SD 卡的一部分划分成
Linux 的使用的 ext2
文件系统,然后在开机时把此分区挂载到某处,并通过链接的方法,让系统从
SD 卡中读取软件
3. 实现
SD 卡分区
使用 Linux 系统中的工具
fdisk,它是命令行工具,很快很简单
Windows 下的图形化工具
具体步骤见
[http://www.3haoweb.cn/a/digital/mobile/2010/060 ...
android代码中运行二进制程序或脚本
android
代码中运行二进制程序或脚本
#移动开发 #Android
1. 知识点
在程序中执行 shell 脚本或程序(线程中执行),并显示进度条
2. 示例
功能
实现在程序中运行命令”sleep 3”,在线程中进行,并显示进度条
代码
_ ……
String commands = "sleep 3";
sendshell(commands);
……
public void sendshell(final String commands) {
String mymsg = "run " + commands;
patience = ProgressDialog.show(this, "please wait", mymsg, true);
Thread t = new Thread() {
public void run() {
try {
Process process = Runtime.getRuntime().exec(commands);
process.waitFor();
} catch (Exception e) {
e.printStackTrace(); ...
AndroidDensity
Android Density
1. 什么是 density
density
density 表示每英寸有多少个显示点 (逻辑值),它的单位是 dpi:dot per
inch,通常屏幕大时,
density 就大,屏幕小时,density 就小,通常
屏幕实际分辨率为 240px400px 时,density=120
屏幕实际分辨率为 320px533px,density=160
屏幕实际分辨率为 480px*800px,density=240
分辨率
是整个屏是多少点,比如 800x480,它是软件的显示单位
从 Android1.6 版本开始支持 density(对应 API Level 4)
用于解决应用在屏幕大小不同的硬件上正常显示的问题
2. 相关代码及设置
AndroidManifest.xml
这个参数在 API Level 4 也就是 SDK 1.6 以后才启用的,而且 1.6 版本的
API Level 4 的应用默认值就是
True
资源目录名(android 2.0 以后) res/xxx-hdpi 当 density 为 240
时,使用此目录下 ...
android的换肤(theme)
android 的换肤
#移动开发 #Android/theme
1. 相关概念
1) 换肤
变换应用的背景,控件样式,应用图标及应用内部版式等与风格相关的界面元素
2) 资源
资源由字串,图片,版式等元素组成,通常存放在 res 目录中,apk
打包时利用 aapt 工具 (实现见
frameworks/base/tools/aapt) 对资源进行解析,并生成 apk 文件。
打包时资源分成两个部分,一部分完全写入 resources.arsc 文件(如
values*),另一部分的索引信息写入
resources.arsc,而自身内容也做相应变化(如:将 9patch 的 png 图其中的
9patch 信息从图片中可见变为记录在文件内部)
3) 相关文件
公用资源存放在 /system/framework/framework-res.apk
包中,应用资源存放在各个应用的 apk
包中(含应用图标,内部图片及布局),有的 android
产品可在设置中换背景图
4) 换肤思路
apk 是以 zip
压缩格式打包的文件,把它解开,然后把其中的图片换成新图片,再打包,替换原系统中的
...
开发android的桌面小程序AppWidget
开发 android 的桌面小程序
AppWidget
#移动开发 #Android
1. 什么是 AppWidget
Android
系统允许某个应用把它自己的控件嵌入到其它的应用之中,这些被嵌入的控件就是”widget”,发布控件的应用是
”:appwidget providers”,而合成控件并显示的应用是”AppWidget
host”.
widget 常被译作小应用,小控件,小部件。最常见的 widget
是显示在桌面上时钟,日历,搜索,相框,音乐等,使用户不用进入应用,就可以方便地使用某种功能。桌面也是一个应用程序(
packages/apps/Launcher),代码中实现了”AppWidget
host”,而时钟,日历是分别实现了不同功能的
”appwidget provider”(packages/apps/Calendar)
2. 建立第一个 AppWidget
长篇大论不如立竿见影地看到效果,用以下方法,建立你的第一个 widget
_ $ cd $ANDROID_SRC/development
$ cp
$ANDROID_SRC/frameworks/base/ ...
浅析dalvik虚拟机JIT技术的实现
浅析 dalvik 虚拟机 JIT
技术的实现
#移动开发 #Android
一、说明
据说 Android 2.2 的虚拟机 dalvik 使用了 JIT 技术,使其运行 速度快了 5
倍。dalvik
解释并执行程序,JIT
技术主要是对多次运行的代码进行编译,当再次调用时使用编译之后的机器码,而不是每次都解释,以节约时间。5
倍是测试程序测出的值,并不是说程序运行速度也能达到 5
倍,这是因为测试程序有很多的重复调用和循环,而一般程序主要是顺序执行的,而且它是一边运行,一边编译,一开始的时候提速不多,所以真正运行程序速度提高不是特别明显。
二、JAVA 虚拟机主要的优化技术
1. JIT(Just In Time)
最开始指在执行前编译,但是到现在已经发展成为,一开始解释执行,只有被多次调用的程序段才被编译,编译后存放在内存中,下次直接执行编译后的机器码
method 方式:以函数或方法为单位进行编译
trace 方式:以 trace
为单位进行编译(可以把循环中的内容作为单位编译),此方法也包含
method
2. AOT(Ahead Of Time)
在程序下载到本地时就 ...
JDWP命令行调试
JDWP 命令行调试
1. JDWP 调试
JDWP 用于在 java 程序层面的调试,当然也可以在 eclipse 中使用,或利用 ddms
调试
在某一终端运行虚拟机
1234$ adb forward tcp:8000 tcp:8000 $ adb shell $ dalvikvm -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y-cp /sdcard/foo.jar Foo _
此时挂起等待调试
在另一终端开启调试
12$ jdb -attach localhost:8000 [jdb _ _ 提示符 _ _ ] run
此时程序继续运行
jdb 常用命令
12345[jdb 提示符 ] threads 看当前所有线程 [jdb 提示符 ] trace methods 0x12aac5a00 跟踪线程号为 0x12aac5a00 的线程 ( 线程号从threads 得到 ) [jdb 提示符 ] next/step 下一步 [j ...