`
agui2007
  • 浏览: 27412 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

在源码中编译自己的Android project

阅读更多

在源码中编译自己的 Android project

 

Daniel Wood 08/27/2010

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

  在启动的模拟器中,将看到你的工程。如下图:

 


  • 大小: 55.4 KB
  • 大小: 155.6 KB
0
2
分享到:
评论
2 楼 gaoxiaoweiandy 2011-11-22  
你好,我用你的方法make project , 结果报错: 是因为我的代码中包含中文,好像是因为编码问题,例如报错,不能识别“代码中的中文 确定2个汉字”。于是,我改成英文后,执行make project 仍然报一样的错误,仍然说不能识别“确定2个汉字”。我想,是因为要清理掉 第一次 make project生成的文件吧,否则代码以及不包含“确定”2个中文字符了,还要报上次旧的错误。请问,如何清除第一次编译的结果,重新编译。我的QQ254904252.你的呢,希望和你交流。
gaoxiaoweiandy 写道
你好,我用你的方法make project , 结果报错: 是因为我的代码中包含中文,好像是因为编码问题,例如报错,不能识别“代码中的中文 确定2个汉字”。于是,我改成英文后,执行make project 仍然报一样的错误,仍然说不能识别“确定2个汉字”。我想,是因为要清理掉 第一次 make project生成的文件吧,否则代码已经不包含“确定”2个中文字符了,还要报上次旧的错误。请问,如何清除第一次编译的结果,重新编译。我的QQ254904252.你的呢,希望和你交流。

1 楼 gaoxiaoweiandy 2011-11-22  
你好,我用你的方法make project , 结果报错: 是因为我的代码中包含中文,好像是因为编码问题,例如报错,不能识别“代码中的中文 确定2个汉字”。于是,我改成英文后,执行make project 仍然报一样的错误,仍然说不能识别“确定2个汉字”。我想,是因为要清理掉 第一次 make project生成的文件吧,否则代码以及不包含“确定”2个中文字符了,还要报上次旧的错误。请问,如何清除第一次编译的结果,重新编译。我的QQ254904252.你的呢,希望和你交流。

相关推荐

    Android ZXing 2.3.0源码及编译后的core-2.3.0.jar和android-integration-2.3.0.jar打包亲测可用

    最近2013-11-29(Nov 29, 2013)更新的Android ZXing 2.3.0 release源码及编译后的core-2.3.0.jar和android-integration-2.3.0.jar打包亲测可用,如大家有兴趣自己编译的话请参考下面的教程。 下面我写的教程修改自...

    安卓4.0源码编译问题

    昨天想下载android4.0.4的源代码,结果一执行repo sync就遇到了下面的错误: Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python2.6/threading.py", line 532, in __...

    Android VoIP语音及视频通话源代码.rar

    Android版VoIP客户端App源代码,用以实现经典的语音及视频通话功能,开发环境的配置下载下来SipDroid源代码后,不能直接导入到eclipse中,否则是无法使用和编译的。  首先需要通过command line参照工程目录下的...

    android-ijkplayer编译好的源码.part2

    ijkplayer编译好的源码直接导入Android stdio2.2中可以直接运行,不能运行,可以加群

    Android代码-android-app

    如果编译出错,请修改项目根目录下的 project.properties 文件。 推荐使用Android 4.0 以上版本的SDK: target=android-14 一、工程目录结构 根目录 >├ source >├ LICENCE.txt >├ README.md 目录简要解释 根...

    android-cmake-project:使用CLion编辑android源代码并自动解析Android.mk-android source code

    我们可以编译自己的Android C / C ++代码以在Android设备上运行。 当然,感谢CLion团队,所有这些都是基于CLion的。 自动找到模块的路径。 自动解析模块的android.mk或android.bp文件。 自动解决模块依赖性。 ...

    编译完的Sipdroid源码

    编译完的Sipdroid源码,可以直接运行

    [开源]eoe的Android客户端源码

    [开源]eoe的Android客户端源码 本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享。 如您感觉本项目中有不妥之处或者有不爽的地方,欢迎提交问题或更改方案,项目小组会 及时的对您提交的修改...

    java版商城源码下载-android-open-project:android-open-project

    欢迎大家推荐好的Android开源项目,请Star、Fork或在 中告诉我 :) 目前包括:  包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar等等  包括依赖注入框架、图片缓存、网络...

    Android命令行下创建工程

    1 使用NDK中的工具将源c/c++代码编译为库的文件形式,具体的环境配置有总结。进入工程文件所在目录,命令为:$ $NDK/ndk-build ,可以看到生成文件.so的形式 2 仍然在此目录下,下面的编译需要产生build.xml文件,...

    guardianproject-openssl-android-1a3c579

    经过老外修改后的下载下来再经过自己修改为供NDK编译的openssl源码,自己的JNI程序放在myApp文件夹即可编译为动态库给java调用,当然可以根据自己的需求修改

    利用源码编译Android系统的APK和可执行命令的方法

    编译Android系统APK 1、设置环境 export ANDROID_HOME=/home/administrator/soft/android export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product...

    android下使用ffmpeg解码函数播放H264文件

    解压后有2个文件夹testService和h264_project,前者是一个android工程,后者是一个在linux下编译android中能用的ffmpeg工程,其中有ffmpeg源代码(该ffmpeg版本为0.7.15),H264Android.c源码和编译好的ffmpeg.so,H264...

    疯狂android讲义光盘源码第一部分(全部三部分)

    另外,书中每份源代码也给出与光盘源文件的对应关系,方便读者查找。 本光盘codes目录下有19个文件夹,其内容和含义说明如下: (1) 01~19个文件夹名对应于《疯狂Android讲义》中的章名, 即第2章所使用的代码...

    Android代码-eoe 安卓客户端

    如果编译出错,请修改项目根目录下的 project.properties 文件。 推荐使用Android 4.0 以上版本的SDK: target=android-14 一、工程目录结构 根目录 >├ source >├ LICENCE.txt >├ README.md 目录简要解释 根...

    javatools源码-android-dx:androiddx-1.16源代码

    Project用来在Android上面编译dex文件。 安装 示例 // class文件夹,或者单个class文件,或者jar String classFolder = "/storage/emulated/0/Android/data/com.xiaoyv.myapplication/files/build/"; // 转换命令 ...

    新版Android开发教程.rar

    将会支持 Google 可能发布的手机操作系统或者应用软件,共同开发名为 Android 的开放源代码的移动 系 统。 谷歌早在 2002 年就进入了移动领域,可是由于目前的手机操作系统企业和手机企业相对封闭,提高了 行业的...

    Android插件框架Android-Plugin-Framework.zip

    12、需要关注PluginTest工程的ant.properties文件和project.properties文件以及custom_rules.xml文件,插件使用宿主程序共享库,以及共享库R引用,和编译时排除的功能,都在这3个配置文件中体现 暂不支持的...

    android的编译和运行过程深入分析

    可以先通过搭建好的Eclipse开发环境创建一个未编译的Android工程,记的一定要将Eclipse中Project菜单下的Build Automatically选项前面的对勾去掉后再去创建工程。创建好未编译的工程后,在命令行中输入如下命令: d:...

    Google Android SDK开发范例大全(完整版)

    为了在 Eclipse 中创建应用程序,选择 File > New > Android project,这将启动 New Android Project 向导。 图 5. New Android project 向导 接下来,创建一个简单的应用程序,该应用程序有一个活动,并且在 ...

Global site tag (gtag.js) - Google Analytics