1. 说明
在问题定位时,通常使用一些非常简单的程序来测试,以简化逻辑。下面介绍android各个层面的测试的编写:普通的java程序,加入android类的java程序,带android界面的java程序和运行在android平台上的c/c++程序
2. 配置环境
$ cd $ANDROID_SRC
$ . build/envsetup.sh
$ cd development
3. 普通java程序
1) 建立Foo.java,内容如下
class Foo {
public static void main(String[] args)
{System.out.println(“Hello, world”);}
}
2) 编译
$ javac Foo.java
$ dx --dex --output=foo.jar Foo.class # 把一个或多个class编成一个jar
3) 运行
$ adb push foo.jar /sdcard # 复制到设备的sd卡中
$ adb shell dalvikvm -cp /sdcard/foo.jar Foo # 指明路径和类名
4. 使用android特定功能的java程序(需引入android库)
1) 建立Foo.java,内容如下
import android.os.Debug;
class Foo {
public static void main(String[] args)
{
System.out.println(“Hello, world”)
android.os.Debug.dumpHprofData(“/sdcard/test.hprof”);
;}
}
2) 建立Android.mk,内容如下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=$(call all-subdir-java-files)
LOCAL_MODULE:=foo
include $(BUILD_JAVA_LIBRARY)
3) 编译
$ mm
4) 运行
$ adb push $ANDROID_SRC/out/target/product/xxxxxxx/system/framework foo.jar /sdcard # 复制到设备的sd卡中
$ adb shell dalvikvm -cp /sdcard/foo.jar Foo # 指明路径和类名
5. 带界面的android程序
1) 使用eclipse建立
a) 在eclipse中点击菜单File->New->Project……,选择Android Project
b) 填写project的各项内容如下
Project name: test_xy 目录名, 它位于你设定的workspace之下
Package name: com.android.testxy 打包名称
Activity name: TestXy 类名(生成文件TestXy.java)
Application: name:test_app_name 可执行程序名
然后点Finish按钮
c) 填写代码
这时可以看到代码界面了,从左边的树中打开代码
test_xyà src à com.android.testxyà TestXy.javaàTestXy à onCreate
修改其中代码(不改也行)
2) 修改编译运行
a) eclipse中运行
i. 在eclipse中点击菜单Run->Run Configurations……
ii. 双击左边的Android Application,产生了一个New Configuration,点开它填写内容如下:
Name: yan_config // 随便起一个
Project: test_xy // 刚才起的project, 即目录名
iii. 点击Apply,然后点Run,多等一会儿就出来了
b) 从命令行运行
i. 复制工程到Android源码目录中
$ cp $WORKSPACE/test_xy $ANDROID_SRC/development/ -R
ii. 加入Android.mk
$ cd $ANDROID_SRC/development/test_xy/
编写Android.mk内容如下
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME:=XyTest
LOCAL_CERTIFICATE:=platform
include $(BUILD_PACKAGE)
iii. 编译
$ mm
iv. 运行
$ adb install $ANDROID_SRC/out/target/product/xxxxxx/system/app/XyTest.apk
$ adb shell am start -n com.android.testxy/com.android.testxy.TestXy
# am start -n 类名/类名.Activity名
6. 简单的c++程序
1) 建立main.c,内容如下
#include
int main()
{
printf("Hello World!/n");
return 0;
}
2) 建立Android.mk,内容如下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= /
main.c
LOCAL_MODULE := helloworld
include $(BUILD_EXECUTABLE)
3) 编译
$ cd $(ANDROID_SRC) && make helloworld
或
$ mm
4) 运行
$ adb push out/target/product/generic/system/bin/helloworld /sdcard
$ adb shell /sdcard/helloword