测试了一下,android 下写文件性能:
测试环境 eben T4
android 2.3.4
小文件时RandomAccessFile 比FileOutputStream 快
大文件正好相反FileOutputStream 比 RandomAccessFile 快
我测试
100M , final int length = 1024 * 1024 * 100; 时间ms
RandomAccessFile write: 104857600耗 时:33874
BufferedOutputStream write: 104857600耗 时:17814
50M , final int length = 1024 * 1024 * 50; 时间ms
RandomAccessFile write:52428800 耗时:16430
BufferedOutputStream write:52428800 耗时:9497
10M , final int length = 1024 * 1024 * 10; 时间ms
RandomAccessFile write:10485760 耗时:454
BufferedOutputStream write:10485760 耗时:958
建议开发者存储文件时选择适合的方式。
测试代码如下:
private void testFileWrite(){
RandomAccessFile mRandomAccessFile = null;
File randomFile;
randomFile = new File("/sdcard/randomFile.test");
final int length = 1024 * 1024 * 10; // *100 //*50
byte buffer[] = new byte[1024];
for (int i = 0; i < 1024; ++i) {
buffer[i] = (byte) (0xFF & i);
}
long start_time = System.currentTimeMillis();
try {
mRandomAccessFile = new RandomAccessFile(randomFile, "rw");
mRandomAccessFile.setLength(length);
for (int i = 0, max = length / 1024; i < max; ++i){
mRandomAccessFile.write(buffer, 0, 1024);
}
if (mRandomAccessFile != null) {
mRandomAccessFile.close();
}
} catch (IOException e) {
e.printStackTrace();
}
long end_time = System.currentTimeMillis();
Log.d("", "RandomAccessFile write:" + length +" 耗时:"+(end_time-start_time));
start_time = System.currentTimeMillis();
/////////////////////////////////////////////////////////////////////////
FileOutputStream downFileWriter = null;
BufferedOutputStream downFileBuffer = null;
File streamFile = new File("/sdcard/streamFile.test");
try {
downFileWriter = new FileOutputStream(streamFile, true);
downFileBuffer = new BufferedOutputStream(downFileWriter,102400);
for (int i = 0, max = length / 1024; i < max; ++i){
downFileBuffer.write(buffer, 0, 1024);
}
if (null !=downFileBuffer) {
downFileBuffer.flush();
downFileBuffer.close();
downFileBuffer = null;
}
if (null != downFileWriter){
downFileWriter.flush();
downFileWriter.close();
downFileWriter = null;
}
} catch (Exception e) {
e.printStackTrace();
}
end_time = System.currentTimeMillis();
Log.d("", "BufferedOutputStream write:" + length +" 耗时:"+(end_time-start_time));
}
分享到:
相关推荐
压缩文件包含了android端和web端,web端使用myeclipse8.5开发的,ssh框架。android端使用androidstudio2.0开发的,采用了xutils与web端进行网络通信。demo版本,所以界面很简单,只是简单的实现了功能。导进android...
自学Android编程有段时间了,自己写了个Android文件浏览器。因为是从C#转Android,所以代码风格遗留了C#的部分风格,如果有什么问题或者更好的方法,请给作者指出。 功能如下: 1.可以设置为文件浏览器、选择文件、...
Android 基于x5Webview 浏览文件 office文档 已测试Android11 功能实现
该压缩包中含有两个android工程:file和other。file中主要讲述了对文件的保存与读取的功能,other主要用来测试文件保存的四种操作模式。
人脸检测,检测人睁闭眼睛,可以判断是否疲劳驾驶,代码是androidStudio+opencv工程,并且带android下JNI通过NDK编译so库文件的功能。。
功能:可查看单个或目录下所有apk文件的渠道号、包名、版本号 使用:以查看包名、版本号为例 1、copy文件version.sh到apk文件所在目录 2、查看所有apk包名、版本号 执行命令./version.sh查看所有apk文件版本号及...
对pdf文件进行加密操作,测试环境android2.2已通过
实现android客户端FTP上传文件功能,提供android端源代码,附带FTP服务器工具。利用FTP服务器工具可以测试上传文件功能,可以把android端源代码集成到项目工程中使用。
iozone是一个测试文件读写(硬盘读写)的软件。很多时候我们需要在android系统上去做开发和测试。但是网上有源码,需要自己编译。而且要自己摸索怎么移植。这里我直接亲身经历全总结成文档了。 包括: 1)iozone可...
android客户端与web服务器端的文件上传与下载源代码,和android录音功能。 HttpDownloader.java:下载文件 FileUtil.java:post方法上传文件 MainActivity.java:录音功能 TestFileActivity.java:测试文件的上传与...
安卓X86的额外库文件,一共3个,幽灵他就可以在pc上正常运行安卓的几乎所有游戏,软件,功能十分强大,使用方法里面有介绍,目前测试4.0完美通过,其他版本需要大家自己测试了
3.4 Android模拟器中sd卡的创建和文件的上传 15 3.4.1 SD卡的创建 15 3.4.2向sd卡里面上传文件及异常解决 16 4音乐播放器的详细设计 17 4.1 播放器的欢迎界面和主界面的设计和说明 17 4.2 Android媒体播放原理 20 ...
本人开发的android文件解压工具,支持zip文件、rar文件的解压,方便实用,方便那些没有自带解压功能的手机,在android2.3、android3.1、android34.2上测试可以使用,更低版本的手机没有试过。
摘要为增强Android 多媒体系统的功能,在Android 智能手机上添加WMA 音频播放功能,使Android 平台支持WMA 格式,播放WMA 格式文件。基于Android 多媒体系统的Stagefright 框架,通过创建WMA 的文件解析单元和解码...
Android 进入主页面自动检测下载,提示更新对话框,点击更新后在后台自己下载,在通知栏显示下载进度.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
可提供业界最全的自动测试服务类型:兼容测试、性能测试、功能测试。返回测试结果,测试结果包括:CPU消耗、内存消耗、启动时间,界面截图、Log日志、错误原因及分析等 iOS/Android两大平台 全球首款同时支持...
程序功能:文件传送(适用于Windows、Linux、Android),电脑到电脑、手机到手机、手机到电脑、电脑到手机。 开发背景:因发现当前市面上的文件传送软件都带有很多的广告、组件太过复杂、莫名被获取个人信息、传送...
获取服务器端XML文件,解析XML获取到最新版本号,与当前软件版本号进行对比,发现不一样则提示更新。 涉及到内容点: 1.远程获取XML并分析XML内容 2.远程下载文件并打开 3.下载时通知栏显示下载进度
RoboSpock 是一个开源的 Android 测试框架。提供简单的编写 BDD 行为驱动开发规范的方法,使用 Groovy 语音,支持 Google Guice 库。RoboSpock 合并了 Robolectric 和 Spock 的功能。 示例代码: def "should ...
详细的介绍了3G中的A-GPS移动定位技术、AGPS原理、移动终端A_GPS定位功能的性能和一致性测试、有关Android中的AGPS。 2、Android YGPS 搜索并绘画 自绘视图View实现gps绘画、监听gps状态、监听gps位置变化、以及搜...