各个层面的 android 小例程

1. 说明
在问题定位时,通常使用一些非常简单的程序来测试,以简化逻辑。下面介绍 android 各个层面的测试的编写:普通的 java 程序,加入

android 类的 java 程序,带 android 界面的 java 程序和运行在 android 平台上的 c/c++ 程序

2. 配置环境

1
2
3
$ cd $ANDROID_SRC_  
$ . build/envsetup.sh
$ cd development

3. 普通 java 程序

  1. 建立 Foo.java,内容如下
1
2
3
4
class Foo {  
public static void main(String[] args)
{System.out.println(“Hello, world”);}
}
  1. 编译
1
2
$ javac Foo.java  
$ dx --dex --output=foo.jar Foo.class # _ _ 把一个或多个 class 编成一个 jar
  1. 运行
1
2
$ adb push foo.jar /sdcard #_ _ 复制到设备的  sd  卡中  
$ adb shell dalvikvm -cp /sdcard/foo.jar Foo # 指明路径和类名

4. 使用 android 特定功能的 java 程序(需引入 android 库)

  1. 建立 Foo.java,内容如下
1
2
3
4
5
6
7
8
import android.os.Debug;  
class Foo {
public static void main(String[] args)
{
System.out.println(“Hello, world”)
android.os.Debug.dumpHprofData(“/sdcard/test.hprof”);
;}
}
  1. 建立 Android.mk,内容如下
1
2
3
4
5
LOCAL_PATH:= $(call my-dir)  
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=$(call all-subdir-java-files)
LOCAL_MODULE:=foo
include $(BUILD_JAVA_LIBRARY)
  1. 编译
1
$ mm
  1. 运行
1
2
3
$ 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 建立
  1. 在 eclipse 中点击菜单 File- >New->Project ……,选择 Android Project

  2. 填写 project 的各项内容如下
    Project name: test_xy 目录名, 它位于你设定的 workspace 之下
    Package name: com.android.testxy 打包名称
    Activity name: TestXy 类名 (生成文件 TestXy.java)
    Application: name:test_app_name 可执行程序名
    然后点 Finish 按钮

  3. 填写代码
    这时可以看到代码界面了,从左边的树中打开代码
    test_xy à src à com.android.testxy à _ TestXy.java _ _ à _ _ TestXy _

_ à _ _ onCreate _
修改其中代码 (不改也行)

  1. 修改编译运行
  1. eclipse 中运行
  1. 在 eclipse 中点击菜单 Run- >Run Configurations ……

  2. 双击左边的 Android Application,产生了一个 New Configuration,点开它填写内容如下: Name: yan_config // 随便起一个
    Project: test_xy // 刚才起的 project, 即目录名

  3. 点击 Apply,然后点 Run,多等一会儿就出来了

  1. 从命令行运行
  1. 复制工程到 Android 源码目录中
1
$ cp $WORKSPACE/test_xy $ANDROID_SRC/development/ -R
  1. 加入 Android.mk
1
2
3
4
5
6
7
8
$ 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)
  1. 编译
1
$ mm
  1. 运行
1
2
3
$ 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,内容如下
1
2
3
4
5
6
#include  
int main()
{
printf("Hello World!/n");
return 0;
}
  1. 建立 Android.mk,内容如下
1
2
3
4
5
6
LOCAL_PATH:= $(call my-dir)  
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= /
main.c
LOCAL_MODULE := helloworld
include $(BUILD_EXECUTABLE)
  1. 编译
1
2
3
$ cd $(ANDROID_SRC)  && make helloworld  

$ mm
  1. 运行
1
2
$ adb push out/target/product/generic/system/bin/helloworld /sdcard  
$ adb shell /sdcard/helloword

(转载请注明出处:http://xy0811.spaces.live.com)