怎么样在apk安装过程中让程序和数据分离安装?

cmoth 2014-04-23 03:12:48
我们做了一安卓程序,但是数据文件目录比较大,大概200M左右,子目录也比较多,现在apk安装之后都需要客户自己再把配置文件夹手动拷贝到SD卡上,比较麻烦。想实现安装apk或者程序运行过程中自动把数据文件目录放置在SD卡根目录下,不知道该怎么做?
...全文
265 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
加在apk的资源文件中不合理。很多游戏的做法,都是安装好后第一次打开去下载资源包
妖怪 2014-04-30
  • 打赏
  • 举报
回复
引用 9 楼 DrSmart 的回复:
[quote=引用 7 楼 dxjwolf 的回复:] 不知道你是不是说的odex文件 新版本的android里面已经实现了把资源和执行文件的分离了
odex是用于这个的吗[/quote] 至少可以这么用吧 不过我不做app只做ROM 只是知道系统里面的应用这么打包 但是第三方的能不能这么玩 还真不清楚
DrSmart 2014-04-30
  • 打赏
  • 举报
回复
引用 7 楼 dxjwolf 的回复:
不知道你是不是说的odex文件 新版本的android里面已经实现了把资源和执行文件的分离了
odex是用于这个的吗
cmoth 2014-04-29
  • 打赏
  • 举报
回复
我最后用的也是从资源文件中解压到指定目录的方法,只是第一次比较慢。 更好的应该是运行时自动从网上下载解压,只是不知道该怎么做。再等两天要是还没有更好的方法就结贴了,谢谢各位。 我用到的解压方法如下: /** * 解压Assets中的文件 * @param context上下文对象 * @param assetName压缩包文件名 * @param outputDirectory输出目录 * @throws IOException */ public void unZip(Context context, String assetName, String outputDirectory) throws IOException { //创建解压目标目录 File file = new File(outputDirectory); //如果目标目录不存在,则创建 if (!file.exists()) { file.mkdirs(); } else { return; } // Toast.makeText(Splash.this, "正在解压资源,请稍候", Toast.LENGTH_LONG).show(); InputStream inputStream = null; //打开压缩文件 inputStream = context.getAssets().open(assetName); ZipInputStream zipInputStream = new ZipInputStream(inputStream); //读取一个进入点 ZipEntry zipEntry = zipInputStream.getNextEntry(); //使用1Mbuffer byte[] buffer = new byte[1024 * 1024]; //解压时字节计数 int count = 0; //如果进入点为空说明已经遍历完所有压缩包中文件和目录 while (zipEntry != null) { //如果是一个目录 if (zipEntry.isDirectory()) { //String name = zipEntry.getName(); //name = name.substring(0, name.length() - 1); file = new File(outputDirectory + File.separator + zipEntry.getName()); file.mkdir(); } else { //如果是文件 String sFile = outputDirectory + File.separator + zipEntry.getName(); file = new File(sFile); //创建该文件 file.createNewFile(); FileOutputStream fileOutputStream = new FileOutputStream(file); while ((count = zipInputStream.read(buffer)) > 0) { fileOutputStream.write(buffer, 0, count); } fileOutputStream.close(); } //定位到下一个文件入口 zipEntry = zipInputStream.getNextEntry(); } zipInputStream.close(); }
哈哈gogo 2014-04-29
  • 打赏
  • 举报
回复
这个很简单啊,
妖怪 2014-04-29
  • 打赏
  • 举报
回复
不知道你是不是说的odex文件 新版本的android里面已经实现了把资源和执行文件的分离了
哎,真难 2014-04-24
  • 打赏
  • 举报
回复
压缩放在res里面,然后按照apk,运行app的时候解压res里面的文件,放到sdcard上面,,,
  • 打赏
  • 举报
回复
提供两个下载一个是APK,一个是DB,就和百度地图APK一样,APK和离线地图数据都是单独下载 的
tmxkdldw 2014-04-24
  • 打赏
  • 举报
回复
让他下载吧。。。别的都不太好。。
susuifeng 2014-04-23
  • 打赏
  • 举报
回复
找个好的压缩算法
atlasGS 2014-04-23
  • 打赏
  • 举报
回复
可以通过网络下载

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧