zoukankan      html  css  js  c++  java
  • 第三方开源代码(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

  • 相关阅读:
    linux openssh 升级
    局域网从另一台电脑copy文件(Linux系统下)
    单例模式
    6、android传递数据之剪切板传递数据
    5、android使用意图传递数据之全局变量传递
    4、android生命周期的介绍
    3、android搭建开发环境介绍
    2、android系统框架的介绍
    1、安卓学习线路图
    7、开发有状态bean
  • 原文地址:https://www.cnblogs.com/angelshelter/p/13702923.html
Copyright © 2011-2022 走看看