各个层面的android小例程
|Word count:726|Reading time:3min|Post View:
各个层面的 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 程序
- 建立 Foo.java,内容如下
1 2 3 4
| class Foo { public static void main(String[] args) {System.out.println(“Hello, world”);} }
|
- 编译
1 2
| $ javac Foo.java $ dx --dex --output=foo.jar Foo.class # _ _ 把一个或多个 class 编成一个 jar
|
- 运行
1 2
| $ adb push foo.jar /sdcard #_ _ 复制到设备的 sd 卡中 $ adb shell dalvikvm -cp /sdcard/foo.jar Foo # 指明路径和类名
|
4. 使用 android 特定功能的 java 程序(需引入 android 库)
- 建立 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”); ;} }
|
- 建立 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 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 程序
- 使用 eclipse 建立
在 eclipse 中点击菜单 File- >New->Project ……,选择 Android
Project
填写 project 的各项内容如下
Project name: test_xy 目录名, 它位于你设定的 workspace 之下
Package name: com.android.testxy 打包名称
Activity name: TestXy 类名 (生成文件 TestXy.java)
Application: name:test_app_name 可执行程序名
然后点 Finish 按钮
填写代码
这时可以看到代码界面了,从左边的树中打开代码
test_xy à src à com.android.testxy à _ TestXy.java _ _ à _ _ TestXy
_
_ à _ _ onCreate _
修改其中代码 (不改也行)
- 修改编译运行
- eclipse 中运行
在 eclipse 中点击菜单 Run- >Run Configurations ……
双击左边的 Android Application,产生了一个 New
Configuration,点开它填写内容如下: Name: yan_config // 随便起一个
Project: test_xy // 刚才起的 project, 即目录名
点击 Apply,然后点 Run,多等一会儿就出来了
- 从命令行运行
- 复制工程到 Android 源码目录中
1
| $ cp $WORKSPACE/test_xy $ANDROID_SRC/development/ -R
|
- 加入 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 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++ 程序
- 建立 main.c,内容如下
1 2 3 4 5 6
| #include int main() { printf("Hello World!/n"); return 0; }
|
- 建立 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 2 3
| $ cd $(ANDROID_SRC) && make helloworld 或 $ mm
|
- 运行
1 2
| $ adb push out/target/product/generic/system/bin/helloworld /sdcard $ adb shell /sdcard/helloword
|
(转载请注明出处:http://xy0811.spaces.live.com)