Andriod源码开发,打包so到apk(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-12-22 14:54 点击:

JNIEXPORT jint JNICALL Java _test_jni_jnitest_appadd
  (JNIEnv *env, jobject obj, jint x, jint y){
    return x +y;
}
d)        把工程文件放到SDK platform\packages\apps目录下,然后进入该目录,命令里输入mm,进行该工程的编译.(之前要再platform之前把工程目标设定好)
e)        编译出来的apk 在platform/out/target/product/sk886x/system/app里可以找到,其中sk886x 是目标平台 . 打开该apk文件,可以看到libapptest.so存在在包里的libs/armeabi文件夹里. 运行 该apk,可以正常运行,显示正确答案.
2.        本地库so文件里加打印消息.
a)        这样修改jni文件夹下Android.mk.添加
LOCAL_SHARED_LIBRARIES := libutils
b)        Callapp.c如下
#include <jni.h>
#define LOG_TAG "TestThunderLib"
#undef LOG
#include <utils/Log.h>
JNIEXPORT jint JNICALL Java_test_jni_jnitest_appadd
  (JNIEnv *env, jobject obj, jint x, jint y){
          LOGD("TEST %d+%d=%d",x,y,x+y);
    return x+y;//add22(x,y);
}
c)        重新再工程根目录输入mm,编译得到apk,运行到目标机,通过uart 敲入命令 logcat,会发现有 log 输出 TEST 55 + 66 = 121 等正确信息
3.        在以上的基础上,我引进另外的库文件,给callapp.c调用.
a)        此库我们用NDK 编译出来,请保证和目标平台版本一致.文件如下:
i.        Add.c
#include "add.h"
int  add22(int  x, int  y){
    return x + y;
}
ii.        Add.h
#ifndef ADD_H
#define ADD_H

extern int add22(int  x, int  y);

#endif /* ADD_H */
iii.        NDK 的Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := testapi
LOCAL_SRC_FILES := add.c
LOCAL_PRELINK_MODULE := false
include $(BUILD_STATIC_LIBRARY)
#include $(BUILD_SHARED_LIBRARY)
b)        选择不同的built方式,经NDK 编译,可以得到libtestapi.a,libtestapi.so
c)        此时,工程目录下jni文件夹里Android.mk里添加
LOCAL_STATIC_LIBRARIES := libtestapi
表示吧libtestapi作为静态库编译到libapptest.so里.
d)        Callapp.c 内容如下
#include <jni.h>
#include "add.h"
#define LOG_TAG "TestThunderLib"
#undef LOG
#include <utils/Log.h>
JNIEXPORT jint JNICALL Java_test_jni_jnitest_appadd
  (JNIEnv *env, jobject obj, jint x, jint y){
          LOGD("TEST %d+%d=%d",x,y,x+y);

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1