Android 源代码中增加新apk
来源:互联网 发布:杭州数据资源管理局 编辑:程序博客网 时间:2024/06/05 15:43
hello-jni 导入到 eclipse 中,运行模拟器,即可显示
[local]1[/local]
下面再看一个例子 native-activity
1、 进入目录后执行 $NDK/ndk-build
2、 生成 libnative_activity.so 并存于当前目录的 lib/armeabi 目录下,另外由源代码生成的还有静态库,存放于obj/local/armeabi/ libandroid_native_app_glue.a
这里,由于 main.c 比较大,就不贴上了
Android.mk
Java代码
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := native-activity
- LOCAL_SRC_FILES := main.c
- LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM
- LOCAL_STATIC_LIBRARIES := android_native_app_glue
- include $(BUILD_SHARED_LIBRARY)
- $(call import-module,android/native_app_glue)
复制代码
Java代码
- APP_PLATFORM := android-10<span style="white-space: normal;"> </span>
复制代码
[local]2[/local]
4、增加apk文件(有源代码)
如果将 android 程序的源代码加入到 build system 中呢
(1) 在 eclipse 开发环境中创建你的 android 工程,比如叫做 Success
(2) 将工程拷贝到源代码的 package/apps 目录下
(3) 进入 Success 目录下,创建一个 Android.mk 文件,内容如下
Java代码
- LOCAL_PATH :=$(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS :=optional
- LOCAL_SRC_FILES :=$(call all-java-files-under, src)
- LOCAL_PACKAGE_NAME :=(工程名字)
- LOCAL_CERTIFICATE :=platform
- include $(BUILD_PACKAGE)
复制代码
#. build/envsetup.sh
#mmm packages/apps/Success
编译成功之后,会在 out/target/product/generic/system/app/Success.apk
(5) 如果要在真机上测试, system 的目录是在 out/target/product/crespo 目录下,编译的时候需要设置一些参数。为了测试,将 crespo 中的 system 记其他内核等文件放入到一个叫做 samsung 的文件夹中,再将Success.apk 放到 system/app 中
(6) 用 #zip –r update.zip . 命令将其打包为 zip ,也可以用 zip 直接压缩
(7) 用 #java –jar testsign.jar Samsung/update.zip update.zip 将 zip 包签名
(8) 打开手机的 usb 调试,连接到电脑上,在终端输入 #adb push update.zip /sdcard/update.zip ,将 zip 包上传到设备的 sdcard 目录下
(9) 输入 #adb reboot bootloader 进入 bootloader 界面
(10) 输入 #fastboot flash recovery recovery.img 刷 recovery, 我刷的是 Recovery 3.0
(11) 进入 Recovery 选项,刷机,重启后就可以见到 Success.apk 程序了
注意:修改 AndroidManifest.xml ,在 manifest 标签中加入 android:sharedUserId=”media” ,当然这个 media只是个 id ,它的名字随便一般类似包名。我们知道,在不同的 apk 包中默认是不能相互访问数据的,但是如果在 AndroidManifest.xml 中设置 sharedUserId 并且相同的话,那么这两个包就可以相互访问数据。由于我写的只是个测试程序,所以没有加入这条
5、增加apk文件(无源代码)
(1) 这种方式最简单,就是将 ***.apk 文件拷贝到编译 android 源代码时候生成的out/target/product/crespo/system/app 中,执行 make snod 后就可以把 apk 添加到 system.img 中了,然后将system 目录及其他的几个文件打包成 zip 并签名后即可,刷机后可以看到这个内置的系统程序。
(2) 上一种方式在 make clean 之后,再次 make 以后才能执行上述的操作,比较麻烦
① 新建一个目录,在 packages/apps 下面,专门用来存放 apk 文件
#mkdir packages/apps/apks
#cd packages/apps/apks
在这个目录中新建一个 Android.mk 文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND := (shell cp –r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/)
保存退出
② 把需要编译的 apk 拷贝到 apks 目录中,执行 make ,在 apks 中的 apk 就会被拷贝到out/target/product/generic/system/app 中
③ 执行 make snod 即可
这样,在执行 make clean 之后,再次 make ,只需要 make snod 即可了
0 0
- Android 源代码中增加新apk
- Android 源代码中增加新apk
- Android 源代码中增加新apk
- Android 源代码中增加新apk
- Android 源代码中增加新apk
- Android 源代码中增加新apk
- android apk源代码反编译
- android 增加新按键
- android 增加新按键
- Android 增加第三方APK
- 系统代码中增加APK
- android 反编译apk得到源代码
- Eclipse中Android源代码新下载方法及关联
- Eclipse中Android源代码关联及新下载方法
- Eclipse中Android源代码新下载方法及关联
- python中增加新模块
- 在android中增加公用资源包(类似framework-res.apk)
- 在android系统中增加预编译apk 2012-05-10 08:33:23
- 删繁就简之Ajax代码封装
- android如何把apk的工程代码放到源码目录下编译
- ViewPager
- 黑马程序员--JAVA基础--测试博客
- spring aop(五)--ProxyFactoryBean创建代理的实现
- Android 源代码中增加新apk
- 回忆一下带学生工作室时的一些趣事
- 螺旋方阵(20)
- spring aop(六)--代理调用机制
- 循环队列和链表队列代码
- 入门学习duilib的要点
- ActiveMQ入门实例
- Android架构师之路-UML图形思考
- Ubuntu14.04下快速开发QT应用程序