zoukankan      html  css  js  c++  java
  • android打包so文件到apk


    在apk里打包进.so文件的方法
    有两种方法,
    1 是在Android.mk文件里增加
    LOCAL_JNI_SHARED_LIBRARIES := libxxx
    这样在编译的时候,NDK自动会把这个libxxx打包进apk;
    放在youapk/lib/目录下。

    2 是在应用的目录下手工建
    libs/armeabi
    目录,然后把libxxx.so拷贝到这个目录下,
    这样NDK就会自动把这个libxxx.so打包进apk,位置还是在
    放在youapk/lib/目录下。

    在代码里,使用
    System.loadLibrary("xxx");
    就可以加载这个动态库了。
    这里要注意,参数只写xxx就可以了,不需要写libxxx,也不需要写libxxx.so。

    还有一点要说明,System.loadLibrary这个函数会在如下路径搜索libxxx.so文件:
    /system/lib
    /data/data/you apk package/lib

    但,如果libxxx.so还依赖其它.so文件,比如libyyy.so,则System.loadLibrary只会
    在/system/lib目录下去找,如果没找到,它不会自动到/data/data/you apk package/lib
    下去找,这个时候就会报动态库没找到的错;
    解决方法是在load libxxx.so之前,先load libyyy.so,如下:
    System.loadLibrary("yyy");
    System.loadLibrary("xxx");

    下面详细说明过程如下:
    使用android SDK原代码 开发APK,将so文件打包进apk,这样可以只提供给客户一个apk. 
    1.含义全代码的so打包. 
    a)建立工程,并使用本地调用,java文件如下 
    01.package test.jni;
    02.import android.app.Activity;
    03.import android.os.Bundle;
    04.import android.widget.TextView;
    05.public class jnitest extends Activity {
    06./** Called when the activity is first created. */
    07.@Override
    08.public void onCreate(Bundle savedInstanceState) {
    09.super.onCreate(savedInstanceState);
    10.TextView tv = new TextView(this);
    11.int x = 55;
    12.int y = 8;
    13.System.loadLibrary("apptest");
    14.//System.loadLibrary("testapi");
    15.<span class="block" margin-top:4px;"="" style="word-wrap: break-word; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important;"> 注:暂存的内容只能恢复到当前文章的编辑器中,如需恢复到其他文章中,请编辑该文章并从暂存箱中恢复;或者直接复制以上内容,手工恢复到相关文章。
  • 相关阅读:
    linux中systemctl详细理解及常用命令
    Hadoop中的java基本类型的序列化封装类
    理解javaBean
    hadoop之mr框架的源码理解注意点
    python生日贺卡制作以及细节问题的解决最后把python项目发布为exe可执行程序过程
    Hadoop MapReduce执行过程详解(带hadoop例子)
    为什么hadoop中用到的序列化不是java的serilaziable接口去序列化而是使用Writable序列化框架
    Java代码如何关联Hadoop源码
    关于版本控制
    GIT和SVN之间的五个基本区别
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/4879052.html
Copyright © 2011-2022 走看看