CTS的Signature规则
CTS 的 Signature 规则
1. 说明
主要是对公共控件的语法检查
2. 测试方法
_ $ make cts
$ adb install -r
out/target/product/qsd8250_surf/data/app/SignatureTest.apk
$ adb shell am instrument -w
android.tests.sigtest/.InstrumentationRunner _
3. 原理
系统生成了一些 xml,位置在:
out/target/common/obj/APPS/SignatureTest_intermediates/genres/xml/*
根据 xml 对类、方法、变量给出的规则对当前系统中的公共部分进行检测
4. 举例
用于检查的语法规则 xml 文件
out/target/common/obj/APPS/SignatureTest_intermediates/genres/xml/app_widget.xml
被检查的代码
framework/base/core/java/android/widget/*
检查步骤
用循 ...
android应用程序的签名(Signature)
android 应用程序的签名
(Signature)
1. 为什么要签名
发送者的身份认证
由于开发商可能通过使用相同的 Package Name
来混淆替换已经安装的程序,以此保证签名不同的包不被替换
保证信息传输的完整性
签名对于包中的每个文件进行处理,以此确保包中内容不被替换
防止交易中的抵赖发生,Market 对软件的要求
2. 签名的说明
所有的应用程序都必须有数字证书,Android
系统不会安装一个没有数字证书的应用程序
Android
程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证
如果要正式发布一个 Android
应用,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用 adt
插件或者 ant
工具生成的调试证书来发布
数字证书都是有有效期的,Android
只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能
签名后需使用 zipalign 优化程序
Android
将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,而不是用来决定最终用户可以安 ...
编译在G1上运行的android2
编译在 G1
上运行的 android 2.2(froyo) 代码 _ 山寨版
一、说明
1. 下载编译最基本的 android 源码,无法在真机上使用(不能生成
boot.img
),只能在模拟器上使用。这是因为没有编译相关机型的内核和硬件驱动。以下介绍的是用
android 源码编译出对应 HTC G1
的版本,和烧写的过程。编译生成的版本绝大部分功能都能正常使用(电话,短信,上网,音乐,软件安装等正常使用,SD
卡还不能自动挂载,正在修改之中),在
G1 上运行 2.2 版稳定性不错,也很顺畅。
2. 本文主要参考编译 android 2.1 的日文文档 G1/G2
烧机指南,感谢原文作者,原文地址:
[http://code.google.com/p/android-development-
environment/wiki/EclaironADP1andADP2](http://code.google.com/p/android-
development-environment/wiki/EclaironADP1andADP2)
同时加入中文系统的支持和 2.2 部分相关修改 ...
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
压缩格式打包的文件,把它解开,然后把其中的图片换成新图片,再打包,替换原系统中的
...