zoukankan      html  css  js  c++  java
  • Android 网络加载动态库 .so

      这几天做项目时遇到一个问题,共17M的Apk,仅两个.so文件就占到14M,就尝试着用户安装完app之后,根据用户需要再加载.so文件,找了之后,方法倒不复杂。

      1. .so文件的网络下载部分就不展示,

      2. .so文件存放路径:一般建议存放在 data/data/<packageName>/路径下,代码如下:

        //getFileDir() :/data/data/<packageName>/file/
        File file2 = new File(getFilesDir(), "libBankeysCoreApi.so");
        try {
                //fos = openFileOutput("libBankeysCoreApi.so", Context.MODE_PRIVATE); //第一个参数:文件名,不允许包含分隔符“/”,如果文件不存在,android会自动创建
                                                                //第二个参数:指定操作模式 
                                        //有网友推荐这样使用,但试过之后会保存,提示 "/data/data/<packageName>/app_" 是个路径的错误
    //我放弃这个办法
    fos = new FileOutputStream(file2.getAbsoluteFile()); fos.write(b); fos.close(); Log.e("TAG", "" + true + ";" + file2.getAbsolutePath()); } catch (FileNotFoundException e) { e.printStackTrace(); Log.e("TAG", e.getMessage()); } catch (IOException e) { e.printStackTrace(); Log.e("TAG", e.getMessage()); } System.load(file2.getAbsolutePath());

      另外:lib下库一般会在/data/data/<packageName>/lib/下备份,调用方法做个改动,如下:

    System.loadLibrary("");

     另,附上:

    getPackageCodePath():/data/app/com.example.download.sotest-2.apk
    getFilesDir():/data/data/com.example.download.sotest/files
    getPackageResourcePath():/data/app/com.example.download.sotest-2.apk
    getCacheDir():/data/data/com.example.download.sotest/cache
    getExternalCacheDir():/storage/emulated/0/Android/data/com.example.download.sotest/cache
    getObbDir():/storage/emulated/0/Android/obb/com.example.download.sotest
    getFilesDir():/data/data/com.example.download.sotest/files

    上面部分我试过之后是可行的,希望能帮到大家。

  • 相关阅读:
    一次与客户端合作的走坑之旅!
    ecplise打不开提示Eclipse中...No java virtual machine was found...
    eclipse配置tomcat,让java web项目运行起来!
    Tomcat v9.0 Could not publish to the server. java.lang.IndexOutOfBoundsException
    Certbot让网站拥有免费https证书
    Nginx访问权限配置
    hexo博客pure主题解决不蒜子计数不显示的问题
    Mono.Cecil 修改目标.NET的IL代码保存时报异常的处理。
    [转载]斐讯K2 A2版免TTL刷BREED不死Bootloader
    各种UserAgent的列表
  • 原文地址:https://www.cnblogs.com/ZhangXiangQian/p/4900209.html
Copyright © 2011-2022 走看看