apk安装时在SDCard创建文件夹和复制文件

标签: apk sdcard 文件夹 | 发表时间:2013-01-02 00:46 | 作者:
出处:http://www.iteye.com

一、效果:

安装apk到用户手机上时在用户的SDCard创建文件夹(其实就是建立你唯一的应用的目录咯),以及复制一些你不想编译而有用的文件到你的目录下!

 

二、关键点:

1、得到sdcard的路径:android.os.Environment.getExternalStorageDirectory().getAbsolutePath()一般都会得到路径“/mnt/sdcard"

2、将你需要复制到用户sdcard的文件放到android代码res/raw路径如”res/raw/flycatdeng.txt",放在raw中的文件不会被编译。通过getResources().openRawResource(R.raw.flycatdeng);方式来获得这个资源,返回InputStream输入流。

3、得到目录或文件 File file=new File(String path); 判断是否有这个文件或目录file.exists(),返回true则表示存在;

4、如果目录不存在则需要创建目录(文件夹),file.mkdirs();//这里非常需要注意,如果是只有一个文件夹的话可以用mkdir(),但是如果你要再文件夹中还要有文件夹的话则需要用到mkdirs()

5、输入输出文件流,可见以下代码

6、最最最关键的是一定要在AndroidManifest.xml文件中配置添加用户权限:

sdcard创建和删除的文件的权限:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

sdcard文件写入内容的权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

三、源码:

public class MainActivity extends Activity {
	private String fileDirPath = android.os.Environment
			.getExternalStorageDirectory().getAbsolutePath()// 得到外部存储卡的数据库的路径名
			+ "/Mulu01/Mulu02/Mulu03";// 我要存储的目录
	private String fileName = "flycatdeng.txt";// 要存储的文件名

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		createFile();// 创建目录及文件
	}

	private void createFile() {
		String filePath = fileDirPath + "/" + fileName;// 文件路径
		try {
			File dir = new File(fileDirPath);// 目录路径
			if (!dir.exists()) {// 如果不存在,则创建路径名
				System.out.println("要存储的目录不存在");
				if (dir.mkdirs()) {// 创建该路径名,返回true则表示创建成功
					System.out.println("已经创建文件存储目录");
				} else {
					System.out.println("创建目录失败");
				}
			}
			// 目录存在,则将apk中raw中的需要的文档复制到该目录下
			File file = new File(filePath);
			if (!file.exists()) {// 文件不存在
				System.out.println("要打开的文件不存在");
				InputStream ins = getResources().openRawResource(
						R.raw.flycatdeng);// 通过raw得到数据资源
				System.out.println("开始读入");
				FileOutputStream fos = new FileOutputStream(file);
				System.out.println("开始写出");
				byte[] buffer = new byte[8192];
				int count = 0;// 循环写出
				while ((count = ins.read(buffer)) > 0) {
					fos.write(buffer, 0, count);
				}
				System.out.println("已经创建该文件");
				fos.close();// 关闭流
				ins.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [apk sdcard 文件夹] 推荐:

apk安装时在SDCard创建文件夹和复制文件

- - ITeye博客
安装apk到用户手机上时在用户的SDCard创建文件夹(其实就是建立你唯一的应用的目录咯),以及复制一些你不想编译而有用的文件到你的目录下. 1、得到sdcard的路径:android.os.Environment.getExternalStorageDirectory().getAbsolutePath()一般都会得到路径“/mnt/sdcard".

java解析APK

- - Linux - 操作系统 - ITeye博客
1、结合安卓提供apktool工具,用java执行cmd解析命令获取apk信息. 2、利用相关jar包里的集成方法解析apk. 这里只给出第二种方法,因为第一种方法在linux服务器下会出现不在控制范围之内的结果. // 将解压文件对象转列举对象. // 获得名为AndroidManifest.xml的文件.

[译] 使用 APK Analyzer 分析你的 APK

- - IT瘾-dev
本文来自“天天P图攻城狮”公众号(ttpic_dev). 本文是对 《Analyze Your Build with APK Analyzer》 的翻译. Android Studio 2.2包含了APK Analyzer,通过它我们能够直观地看到APK的组成. 使用APK Analyzer不仅能够减少你花在debug上的时间,而且还能减少你的APK大小.

android apk反编译

- - CSDN博客推荐文章
3.查看Jar包的GUI工具. apk文件其实就是一个MIME为zip的压缩包,可以用winrar软件打开看到里面的文件结构. 解压缩后找到里面的classes.dex文件,classes.dex文件就是java文件编译再通过Dalvik须立即提供的dx打包工具打包而成的,接下来就用2个工具来逆向导出java源文件.

Android APK反编译详解(附图)

- jason - iGFW
一、反编译Apk得到Java源代码. 首先要下载两个工具:dex2jar和JD-GUI. 前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码. 首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;解压下载的 dex2jar,将classes.dex复制到dex2jar.bat所在目录.

使用apktool解包和打包apk

- - CSDN博客推荐文章
使用apktool解包和打包apk. 使用apktool解包要植入代码的apk(以下称为A),. 使用apktool解包包含待植入代码的apk(以下称为B). -将B的AndroidManifest.xml中相应的权限和各组件声明信息复制到A中. -把B的相应的smali文件复制到A中. -把B的相应的布局文件复制到A中.

APK反编译去广告大揭秘

- - 移动开发 - ITeye博客
1.下载  apktool . 下载地址: https://code.google.com/p/android-apktool/downloads/list. 2.通过apktool 反编译apk. 命令行中输入以下命令:apktool.bat  d  -f   aaa.apk(apk路径) 反编译APK文件.

APK文件分析工具:AppMon

- - FreeBuf.COM | 关注黑客与极客
对手机恶意软件研究人员来说,有很多APP行为分析工具可以选择,在这里,我要向大家推荐的是AppMon,它可以通过二进制指令获取app程序运行记录,并显示调用函数和相关参数. AppMon使用了多平台动态框架环境Frida,Frida是一款基于python + javascript 的hook框架,适应android\ios\linux\win\osx等平台的脚本交互环境.

Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)

- - CSDN博客推荐文章
       工作中遇到的问题要注意总结,我在工作中遇到了问题,现在抽空简单整理一下;.         第一个问题: 判断手机当前上网用的是sim卡还是wifi,我写了一个封装的方法,以后可以拿来用:.         第二个例子:判断当前的手机屏幕是否开启了旋转屏幕这个选项:.          第三个是在代码中注册监听内存卡状态的广播:     .

HP TouchPad 灵魂不死,Android 附身且带 APK 应用安装

- 品味视界 - Engadget 中国版
惠普的 TouchPad 已经 Android 附身好几次了,不过这次来的有点不同,开发者来自中国,同时是在 WebOS 上调用 Android 系统了. 整个系统通过 .ipk 文件完成安装,整个操控还算流畅,虽然有时候切换主屏和应用程序(比如 Youtube 视频)会感到停顿. 安装应用需下载想要的 apk 文件,放到 U 盘的 apks 目录,进入系统之后就可以发现并安装.