1)将在Eclipse (当然也可以用记事本编写)中编写好的纯源代码(src+res+AndroidManifest.xml )拷到Android 源代码文件夹下的packages/apps 文件夹中,如:/Android/android1.6_r2/packages/apps 。拷过去的文件结构如图(不包括Android.mk 文件 ):
2)然后添加Android.mk 文件,在Android
project 文件夹下,例子中的Android.mk 文件内容如下:
Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := HelloWorld #这个就是你以后生成的apk的名字 include $(BUILD_PACKAGE)
3)然后在/Android/android1.6_r2 目录下在终端输入make
[project name]
例子:
@desktop:~/Android/android-1.6_r2$ make
HelloWorld PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=1.6
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=DRD35
============================================
build/core/copy_headers.mk:15:
警告:覆盖关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的命令
build/core/copy_headers.mk:15:
警告:忽略关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的旧命令
target R.java/Manifest.java: HelloWorld
(out/target/common/obj/APPS/HelloWorld_intermediates/src/R.stamp)
Warning: AndroidManifest.xml already defines verOz/8
。。。
Install: out/target/product/generic/system/app/HelloWorld.apk
就是在上面这个目录下生成了HelloWorld.apk 文件
4)把HelloWorld.apk 装入模拟器。
你可以用adb push
命令把HelloWorld.apk装入自己的模拟器,你会在模拟器中看到HelloWorld的应用。
在终端执行make snod ,执行目录为/Android/android1.6_r2 :
@desktop:~/Android/android-1.6_r2$ make snod ============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=1.6
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=DRD35
============================================
build/core/copy_headers.mk:15:
警告:覆盖关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的命令
build/core/copy_headers.mk:15:
警告:忽略关于目标“out/target/product/generic/obj/include/libpv/getactualaacconfig.h”的旧命令
make snod: ignoring dependencies
Target system fs image: out/target/product/generic/system.img
就是重新在上述路径生成system.img 文件。system.img 文件就是对system 文件夹的打包,这个打包越打包越大!
5)然后启动模拟器。首先要config 一下(这一步只限于目录下有config文件的,可以执行.
config命令。)
@desktop:~/Android/android-1.6_r2$ .
config #注意点号后面的空格 Set
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/smrdn/Android/android-1.6_r2/out/host/linux-x86/bin
Set
ANDROID_PRODUCT_OUT=/home/smrdn/Android/android-1.6_r2/out/target/product/generic
然后emulator 命令启动模拟器:
@desktop:~/Android/android-1.6_r2$ emulator
在启动的模拟器中,将看到你的工程。如下图: