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

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

  • 相关阅读:
    元素水平居中方式
    JQuery 之事件中的 ----- hover 与 onmouseover 、onmouseout 联系
    JQuery 获取指定url对应的html内容
    BOM 窗体相关属性以及页面可见区域的获取方式
    使用supervisor提高nodejs调试效率
    Jquery on() 动态绑定事件
    局部打印插件 jquery.PrintArea.js
    深入理解BFC和Margin Collapse
    Sublime Text 2 安装Package Control和插件的两种方法
    001 数据库基本概念和操作
  • 原文地址:https://www.cnblogs.com/ZhangXiangQian/p/4900209.html
Copyright © 2011-2022 走看看