• 第三方开源代码(C)生成安卓动态链接库so


    2020-09-20

    百度查Linux的动库库文件so可以给安卓使用吗?

    网上好多说可以。

    后来一想,应该是不可以吧,安卓手机cup架构不同,要针对不同的生成不同架构的包,所以还才混合编译,才有armeabi、armeabi-v7a、arm64-v8a这样不同架构下的so文件。

    切回正题:

    这次以ghttp为例子:

    链接:https://pan.baidu.com/s/1L-4zgm78r7YWs-wFpTLAow
    提取码:c20b

    这里我跳过了ndk安装过程,没有ndk环境的,自己网上搜怎么安装。

    下载源码,放到linux服务器上:解压,

    把libghttp-1.0.9改名为jni, 如果不改,会说找不到工程:

    [root@izwz9eo2whsnfgi4ccyqouz libghttp-1.0.9]# ndk-build
    Android NDK: Could not find application project directory !
    Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
    /usr/bin2/android-ndk-r16/build/core/build-local.mk:151: *** Android NDK: Aborting . Stop.

    拷贝Android.mk和Application.mk到jni目录下

    链接:https://pan.baidu.com/s/1vFhpeU1DwPzTkr_BA6ZF9g
    提取码:whdu

    文件基本不用改动,唯一有改的就是动态库名:

     改好后,保存。

    在jni目录下,执行ndk-build就成功了。

    在它的父级目录里会生成libs和obj两个目录。动态库so文件就是在libs里面。

    可以用nm -D xxxx.so查看里面的方法。这个命令很实用。之前我就是打包成功,以为成功了,用这个看看,里面没几个方法,说明失败了。真正成功,里面应该有共享方法才对。

     最后,我把打好的包,分享出来吧,可以直接用

    链接:https://pan.baidu.com/s/1KOowSqjMVhAS75Q55_IvJA
    提取码:36yp

  • 相关阅读:
    C语言指针强制类型转换
    iphone开发实现单选框
    深入研究java.lang.Runtime类
    hoj 1760 The jackpot一维
    人生最有趣味的事
    GAE 博客——B3log Solo 0.3.0 正式版发布了!
    “三国演义”何处去
    boost库中的智能指针向上转换
    GAE 博客——B3log Solo 0.3.5 正式版发布了!
    GAE 博客——B3log Solo 0.3.0 正式版发布了!
  • 原文地址:https://www.cnblogs.com/angelshelter/p/13702923.html
Copyright © 2020-2023  润新知