1. 程式人生 > >Android 檔案系統讀寫功能測試工具iozone移植。

Android 檔案系統讀寫功能測試工具iozone移植。

iozone可以對檔案系統讀寫功能進行自動測試,首先需要下載iozone。然後原始碼資料夾放在Android原始碼下mm編譯出bin檔案放入裝置bin資料夾下面並賦予讀和執行許可權。

下面是具體步驟,如果會編譯的,不需要的可直接跳過。

1,將iozone4Android-master原始碼資料夾複製到Android原始碼下,我一般喜歡放在android4.4/device/myproduct/common/lib 下。

2,進入原始碼根目錄android4.4/,輸入:”. build/envsetup.sh” 選擇自己的編譯“choosecombo X X X”

3,進入iozone4Android-master下:cd device/infotm/common/lib/memtester-4.3.0/, “mm”編譯。

4,進入android4.4_sz/out/target/product/myproduct/system/bin ,找到生成的iozone檔案。

5,串列埠連線裝置後,輸入”mount -o rw,remount /system” (一定要一模一樣,空格和斜槓不能多也不能少)複製iozone檔案到裝置的/system/bin/目錄下,使用“chmod 755 /system/bin/iozone”賦予檔案許可權。(7、5、5分別對應系統、組、使用者三級,7為讀、寫、執行,5為堵、執行、4為只讀)

在串列埠操作下,進入iozone目錄: system/bin下,輸入 “iozone -a”,就可以看到測試的輸出了,具體測試指令可以檢視iozone的說明。

現在需要在上層Android應用中開啟iozone,需要使用以下方法:

Process mProcess = Runtime.getRuntime().exec("sh");  
DataOutputStream mDataOutputStream = new DataOutputStream(mProcess.getOutputStream());  
mDataOutputStream.write("需要執行的命令".getBytes());  
mDataOutputStream.flush();  
mDataOutputStream.close();  

這裡可以看到,要執行iozone只要在/system/bin下執行,但是預設檔案路徑是根目錄,iozone不能測試,需要進入到可讀寫路徑如 /sdcard下,上層是不能使用“cd /sdcard”切換路徑的。這裡需要更改iozone的原始碼,修改iozone的測試路徑。

開啟iozone原始碼檔案下的iozone.c檔案,修改測試的路徑。這個修改比較多,
修改項
然後就可以用上面的程式碼:

Process mProcess = Runtime.getRuntime().exec("sh");
DataOutputStream mDataOutputStream = new DataOutputStream(mProcess.getOutputStream());
mDataOutputStream.write("iozone -a".getBytes());
mDataOutputStream.flush();
mDataOutputStream.close();

在apk裡邊啟動iozone了。

使用如下程式碼抓取輸出:

InputStreamReader inStream = new InputStreamReader(mProcess.getInputStream());
mBufferReader = new BufferedReader(inStream);
String line = "";  
while ((line = mBufferReader.readLine()) != null) {
    Log.d("myTest",line+"\n");
}

就可以看到輸出了,可以把line賦值給TextView等使它顯示在使用者介面上。while是一個死迴圈,如果放在主執行緒裡邊會使apk崩潰,這個輸出應該另外建立一個執行緒來執行,通過msg.obg把line賦值,然後用一個handle在主執行緒裡邊接收,這樣就可以了。由於是讀寫測試,需要在AndroidManifest裡邊給apk讀寫許可權,並且新增android:sharedUserId=”android.uid.system”給apk系統許可權。然後將apk放在系統原始碼裡邊,在*.mk裡邊的PRODUCT_PACKAGES += \裡邊新增apk包名(和apk目錄下的Android.mk的LOCAL_PACKAGE_NAME := XXX一致)。

相關推薦

Android 檔案系統功能測試工具iozone移植

iozone可以對檔案系統讀寫功能進行自動測試,首先需要下載iozone。然後原始碼資料夾放在Android原始碼下mm編譯出bin檔案放入裝置bin資料夾下面並賦予讀和執行許可權。 下面是具體步驟,如果會編譯的,不需要的可直接跳過。 1,將iozone4A

Linux效能測試工具--iozone

IOzone是一個檔案系統測試基準工具。可以測試不同的作業系統中檔案系統的讀寫效能。可以通過 write, re-write, read, re-read, random read, random write, random mix, backwards read, rec

android檔案操作——檔案demo

寫檔案操作: public void save(String inputText) { FileOutputStream out = null; BufferedWriter writer = null; try {

磁碟速率測試工具 Bonnie

概述 我們在評估開發板的各種介面時,其中一個重要的指標就是頻寬(資料傳輸速率)。早期的時候我們是直接使用 dd 命令進行簡單測試的,但發現多次測量的結果波動很大。後來使用了自己專門寫的 Python 程式,做隨機資料的讀寫。但依然是比較簡陋,考慮不夠全面。 Bonnie 正是適合我們使用

FATFS檔案系統資料

我的Github個人部落格 ----------------------------------- 阮一峰的網路日誌 ----------------------------------- 劉未鵬 | Mind Hacks ---------------------------

我的小工具,java版串列埠測試工具

工作過程中,經常需要和卡片打交道,如何快速的讀寫卡,提高些工作效率呢?業餘時間,搞了個讀寫卡測試工具, 通過串列埠操作讀卡器。我把車載機改造為串列埠的讀卡器,配合這個工具就可以使用了。如果有網友想使用這個工具,得自己 做個下位機讀卡器了。指令是透傳的,監控發出來的指令

Android 6.0系統檔案出現FileNotFoundException:EACCES (permission denied)解決辦法

先檢查你的AndroidManifest.xml是否已經有讀寫許可權: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-

從哪些方面對Android檔案進行測試

一、檔案讀寫基本介紹 檔案的讀寫操作在實際的手機開發中非常常見,比如記錄資料以及App的版本號、作為某些開關觸發過的標記、甚至儲存書籤等,由於目前的主流智慧手機作業系統(如Android,iOS)都是基於Linux/Unix進行開發的,故檔案的讀寫也有著相較於一般Windows系統更為複雜的特性,比如擁

android 資料儲存&lt;一&gt;----android簡訊傳送器之檔案(手機+SD卡)

本文實踐知識點有有三: 1.佈局檔案,android佈局有相對佈局。線性佈局,絕對佈局。表格佈局。標籤佈局等,各個佈局能夠巢狀的。 本文的佈局檔案就是線性佈局的巢狀 <LinearLayout xmlns:android="http://schemas.and

SimpleFs檔案系統初步五(檔案)

1.寫資料的過程: ssize_t simplefs_write(struct file * filp, const char __user * buf, size_t len, loff_t * ppos) { /* After the commit dd37978

2018.11.28 Android踩坑(檔案)

  在學到使用Android Device Monitor 檢視檔案的時候,發現Android Device Monitor在Android Studio裡面找不到了,網上查了原來是被官方棄用了,現在通過命令列的方式啟動 1.開啟Project Structure找到sdk安裝路徑   2

介面測試系列:工作中所用(十:配置檔案操作 configparser模組)

global_cache.py # -*- codeding: utf-8 -*- import configparser import hashlib import os from common.base import ENV class globalInfo: def get_

Android 第二章 本地檔案

讀寫的第一種方式: 使用最初始的IO方式讀寫到應用包目錄下面 package com.example.login; import java.io.BufferedReader; import java.io.File; import java.io.FileInput

c實現功能(11)對二進位制檔案

#include <stdio.h> #include <string.h> int main(){ //實現對二進位制檔案的讀取 //開啟檔案 FILE *p = fopen("D:\\test\\a.wmv", "rb")

Android檔案

首先得獲取檔案讀寫的許可權可以在AndroidManifest中進行獲取檔案讀寫實驗 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-per

JAVA FileUtils(檔案以及操作工具類)

轉別人的合併的連結 //https://www.cnblogs.com/chenhuan001/p/6575053.html   //https://blog.csdn.net/lovoo/article/details/77899627 第一個連結找不到了作者看見了說一下我給你上鍊接

Android檔案許可權

//通過context物件獲取一個私有目錄的檔案讀取流  /data/data/packagename/files/userinfoi.txtFileInputStream fileInputStream = context.openFileInput("userinfo.

mac系統開啟自帶NTFS讀取/功能教程

1.開啟終端 2.diskutil list 3.sudo nano /etc/fstab 4.輸入 LABEL=系統 none ntfs rw,auto,nobrowse LABEL=多媒體 none ntfs rw,auto,nobrowse LABEL=綜合 none ntfs rw,aut

Android 系統開發】 編譯 Android檔案系統 u-boot 核心 並燒到 OK-6410A 開發板上

本篇文章中用到的工具原始碼下載 : -- 光碟所含內容 : Android 引導 u-boot 原始碼, Android 核心 原始碼, Android 系統原始碼, 交叉編譯工具鏈;各項操作說明 : -- 編譯環境 : 編譯原始碼 (u-boot, 核心, Android

Android data目錄檔案

 //把圖片檔案複製到指定目錄   //PicID是drawable的圖片資源ID public void copyImage2Data(Integer PicID) { Log.d(TAG, "mythou copyImage2Data----->Enter Pic