开发第一个Android应用程序

我们终于搭建好开发环境,并成功的启动了emulator模拟器;那么接下来,我们会开发我们都熟悉的Hello World应用程序,来验证系统的行为,从而证实系统的实现原理和执行逻辑。同时,这个应用程序也是我们开始新的路程的开始。下面即为HelloWorld应用程序的实现代码和如何成功的编译这个应用程序。

一、编写源代码部分

1、Java源代码:HelloWorld.java
Public class HelloWorld extends Activity {
Public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.main);
}
}

2、Android相关配置、资源及配置文件

AndroidManifest.xml:
<?xml version=”1.0” encoding=”utf-8”?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
Package=”com.honey.helloworld”
Android:versionCode=”1”
Android:versionName=”1.0”>
<application 
android:label=”@string/app_name”>
<activity android:name=”.HelloWorld”
Android:label=”@string/app_name”>
<intent-filter>
<action  android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity>
</application>
</manifest>
Strings.xml:
<?xml version=”1” encoding=”utf-8”?>
<resources>
<string name=”app_name”>HelloWorld</string>
<string name=”Hello_World”>Hello World</string>
</resources>

最后即为我们主界面的配置文件main.xml:

<?xml version=”1” encoding=”utf-8”?>
<LinerLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
Android:layout_width=”fill_parent”
Android:layout_height=”fill_parent”
Android:gravity=”center”>
<TextView
Android:layout_width=”wrap_content”
Android:layout_height=”wrap_content”
Android:gravity=”center”
Android:text=”@string/hello_world”/>
</LinearLayout>

3、编译脚本文件:Android.mk

LOCAL_PATH:=$(call my-dir)
Include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES:=$(call all-subdir-java-files)
LOCAL_PACKAGE_NAME:=HelloWorld
Include $(BUILD_PACKAGE)

编写这样的代码只是为了验证我们预期的结果,没有任何难度可言。但是,值得注意的是:我们如何编译上面的代码那?我想我们不会继续使用命令make来重新编译整个Android源代码工程的,因为绝对是个漫长等待的过程。我们只需要为我们新增加的代码模块进行编译即可。

A、导入单独编译的模块命令mmm命令

这个命令是Android源代码自有的命令,默认是不可用的,所以我们需要在Android源代码目录中,执行命令$source ./build/envsetup.sh来激活编译某个模块的命令mmm命令。

B、单独编译我们的第一个Android应用程序

单独编译某个应用程序的方法很简单,我们只需要在应用程序目录中执行mmm即可,如:我在源代码根目录中是这样的:$mmm ./packages/experimental/HelloWorld/(这个目录一般存放一些实验性代码)。当然,编译成功后,我们会在目录:out/target/product/generic/system/app中看到我们编译的包apk文件;而c可执行文件或动态链接库文件的编译目录为:out/target/product/generic/system/lib中生成。使用mmm命令单独编译完成之后,我们还需要重新打包Android镜像文件,否则我们在模拟器中是看不到应用程序的。

C、重新打包镜像文件

执行命令$make snod即可,然后启动模拟器即可看到自己编写的应用程序的图标,点击图标运行即可!