下面咱从 android 开发环境安装开始说吧。
1. eclipse 安装
下一个 eclipse-java-helios-SR1-win32.zip 解压即可,不过这个东西需要安装 java 开发环境, java 安装也很简单下载一个 jre-6u23-windows-i586.exe 以及 jdk-6u23-windows-i586.exe 点击安装就可以了。有时候在打开 eclipse 时会提示一些错误,其实有可能是没有 jre 文件夹, copy java 安装文件下 jdk 文件中 jre 文件夹复制到 eclipse 的文件夹下即可。
2. sdk 安装
下载一个 android-sdk_r08-windows.zip 解压即可。一般情况下还需要将其路径加入环境变量中,不加也可以。区别是如果加了,在 eclipse 中新建的 android 的虚拟器会放在该文件夹下,名字为 .android, 如果不加的话,会在 C:/Documents and Settings/ 用户名 下,有些错误的原因就是用户名为汉字。
3. 添加 PATH
我的电脑 -> 属性 -> 高级 -> 环境变量 -> 新建
变量名 JRE_HOME 变量值 C:/Program Files/Java/jre6
变量名 JAVA_JRE_HOME 变量值 C:/Program/Files/Java/jdk1.6.0_13/jre
变量 名 JAVA_HOME 变量值 C:/Program Files/Java/jdk1.6.0_23
变量名 CLASSPATH
变量值
.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar;%JRE_HOME%/lib;%JRE_HOME%/lib/rt.jar;%JAVA_JRE_HOME%/lib;%JAVA_JRE_HOME%/lib/rt.jar
变量名 Android_SDK_HOME 变量值 D:/Android/source/android-sdk-windows
4. eclipse 中的安装 adt 插件
打开 eclipse 后 help->install new software->add name 任意, location 中为 http://dl-ssl.google.com/android/eclipse ,然后就一路 next 就 ok 了。安装后在主界面上 file->new->project 中有 Android 选项就 ok 了。不过还需要配置 sdk 为位置,在 windows->preferences 中的 android 一项中点击 browse 选择 sdk 放置的位置就可以了。
5. ndk 安装
下载 cygwinsetup .zip 和 android-ndk-r5-windows.zip 注意了 android-ndk-1.6_r1-windows.zip 下没有 ndk-build ,这个版本的我不知道怎么编译就换了一个高版本的。安装 cygwinsetup ,一路 next 后选择一个比较近的网站下载,在选择下载安装哪些软件时,全部选择 Install 就行了,反正时间不是太长 ( 我下了一个晚上,嘿嘿!! ) 。然后就 ok 了,在桌面上会有一个 cygwin 的图标,打开后,类似一个终端。在这里需要设置 ndk 的路径,因为你以后会用很多次的。采用 vi /etc/skel/.bashrc 在最后添加
NDK=/cygdrive/xxx/xxx
PATH=$PATH:$NDK
export NDK
退出,然后 source /etc/skel/.bashrc 就可以了,你在命令行中输入
$NDK 应该会打开 ndk 所在的文件夹
6. adb 安装
下载一个 adb 压缩文件,解压,把里面的两个文件 copy 到 windows/system32 下即可。在 start-> 运行 cd c:/ windows/system32 然后就可以使用 adb 了。
7. 如何新建一个 Android 工程
新建一个 android 的工程需要新建一个 avd ,主界面 windws->Android SDK and AVD Manager –>new.
Name : avdtest
Target : Android 2.1
SD Card : 400 Mb
Creat avd 后。会在主界面中罗列出可用的 avd 了。
8. 新建一个 android 的工程
File->new->project->Android->Android project 然后 next ,
Project name :随意
Build Target :选择虚拟机
Application name : 随意
下面的几个那么都随意。注意 Min sdk version 可以是 1~9 值,如果是 Android 2.1 的话,最高为 7. Finish 就可以了。然后在主界面上点击 Run 就可以运行了。
9. Adb 使用
1. 在进入 system32 后运行 adb shell 可以进入正在运行的 Android 的系统终端。
2. Adb push 向 Android 系统中写入东西,一般第一次会提示 Read-Only filesytem ,这就需要 adb shell 进入终端后,输入
mount –o remount /dev/block/mtdblock /system 就可以了。
如果出现 out–memory
则 cmd 中输入 emulator –avd avdname –partition-size 128 ,注意了,如果提示说没有 emulator 的命令,则需要设置环境变量,上面偷懒了,下面就不行了。
3. adb pull 可以将 android 系统内的东西输出。
如 adb pull /data/app/com.examples.apk d:/android/apk
10. so 库的创建
1. 在刚才新建的工程下,新建一个 folder , name 为 jni ,在 jni 下新建两个文件,一个是 Android.mk, 一个是 hello.c 。
2. 在 Android.mk 中输入
LOCAL_PATH := $(call my-dir )
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
LOCAL_LDLIBS := -ldl -llog # 添加系统的 so 文件
LOCAL_LDLIBS += -L./ -lasound # 添加本地的 so 文件 -L 为 so 库的路径 , 这个在调用别人的 so 库,并且有头文件的情况下加快开发速度。
include $(BUILD_SHARED_LIBRARY)
3. 在 hello.c 中添加
#include <string.h>
#include <jni.h>
#include <dlfcn.h>
#include <android/log.h>
jint Java_ com_hello _hello_hello(JNIEnv* env,jobject this)
{
return 12;
}
注意:以上的函数命名为 com.hello 为包名即是新建 android 工程时, package name ,
第二个 hello 为 application name ,这个必须要和工程相互对于。第三个 hello 就是你打算在 java 中调用的函数名。修改 src 下的 hello.java
package com.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class hello extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView tv = new TextView(this);
tv.setText(" hello 调用是否成功 : " + hello());
setContentView(tv);
}
public native int hello();
static {
System.loadLibrary("hello");
}
}
如果以上都没有错的话,点击 run 就可以了,然后再 android 虚拟机上会出现 ” hello 调用是否成功 : 12” 。 Ok !有个小窍门,一般人不告诉他就是,没有对文件改动时,注意点击 refrresh ,不行的话注意,点击主界面上的 project->clean