2012年5月16日 星期三
[Android] [JAVA] Button觸發事件的程式流程
1). 藉由id編號,取得需要使用的Button元件
2). 在Button設定要偵聽動作,及觸發時要執行的method
3). 撰寫method
//=============================================================
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.submit);
button.setOnClickListener(listInfo);
}
private Button.OnClickListener listInfo = new Button.OnClickListener() {
@Override
public void onClick(View v) {
// method
}
};
or
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1=(Button)findViewById(R.id.layout1_button);
b1.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// method
}
};
}
2012年5月15日 星期二
[JAVA] 印出檔案內容
1). 利用FileReader讀檔案
2). 利用read(char[])得知何時檔案讀完,及將檔案內容存入char[]
//=============================================================
public static void main(String[] args) {
char[] data = new char[100];
String str="";
try {
Reader fn = new FileReader("
/home/qn_lo/develop/android/workspace/CommandTest/file.txt");
// 檔案讀完時,read()會回傳-1。
// 另外read(data)會將資料存在data,資料型態是char[]
while ((fn.read(data)) != -1) {
// 將char[]轉成string
str=String.valueOf(data);
}
System.out.print(str);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
2). 利用read(char[])得知何時檔案讀完,及將檔案內容存入char[]
//=============================================================
public static void main(String[] args) {
char[] data = new char[100];
String str="";
try {
Reader fn = new FileReader("
/home/qn_lo/develop/android/workspace/CommandTest/file.txt");
// 檔案讀完時,read()會回傳-1。
// 另外read(data)會將資料存在data,資料型態是char[]
while ((fn.read(data)) != -1) {
// 將char[]轉成string
str=String.valueOf(data);
}
System.out.print(str);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
[Language] i++運算
1). i++, i=i+1
2). ++i, i+1=i
3). i+=1, i++
效能較好
※範例
i=3
i++, i=3
i=4
++i, i=5
i=5
i+=1, i=6
i+6
2). ++i, i+1=i
3). i+=1, i++
效能較好
※範例
i=3
i++, i=3
i=4
++i, i=5
i=5
i+=1, i=6
i+6
2012年5月14日 星期一
[JAVA] 字元轉成字串
※字元轉成字串
1). ""+字元
利用字串運算
2).String.valueOf(char c) :
將 char 變數 c 轉換成字串
※字元陣列轉成字串
2). String.valueOf(char[] data)
將 char 陣列 data 轉換成字串
3). String.valueOf(char[] data, int offset, int count) :
將 char 陣列 data 中 由 data[offset] 開始取 count 個元素 轉換成字串
2012年5月11日 星期五
[Android] [JAVA] Logcat
1). import
import android.util.Log;
2). log寫法
Log.d("tag",string)
※EX1: Log.d("***","**test**")
※EX2: Log.d("***",str)
[Android] [JAVA] 取得settings中資料
1). 大部份資料會在getprop中有
● Android: getprop
● JAVA: SystemProperties.get("屬性")
※ Ex: SystemProperties.get("ro.build.version.release")
2). Kernel Version(OS Version)
● Android: cat proc/version
● JAVA:
Properties props = System.getProperties();
props.getProperty("os.version")
3). EC version
● Android: cat /sys/EcControl/EcVer
● JAVA: 利用filereader讀出檔案,再將檔案內容存進變數
public String getECVer(){
String str="";
int len=0;
char[] cbuf = new char[200];
try {
FileReader fn = new FileReader("/sys/EcControl/EcVer");
try {
while((len = fn.read(cbuf,0,cbuf.length))>=0){
str+=String.valueOf(cbuf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
2012年5月8日 星期二
[Linux] tar解壓縮/壓縮指令
tar解壓縮/壓縮指令
※參數:
● z: zip
● j:bz2
● tar檔不需要參數
--
● x:解壓縮
● c:壓縮
--
● v:列出過程清單
--
● f:強制force
※參數:
● z: zip
● j:bz2
● tar檔不需要參數
--
● x:解壓縮
● c:壓縮
--
● v:列出過程清單
--
● f:強制force
1). 解壓縮(zip)
tar -zxvf [filename.zip]
2). 壓縮(zip)
tar -zcvf [filename.zip] [foldername]
[Android] Android Application Foudamentals
1). Application Components (Android 應用程式構成要素)
它如同網站中的網頁般,多半為彼此獨立、不相互依賴的個體。而且,它們都各自擁有特定的工作任務。
● Activities (活動,前景執行的程序)
● 一個Activity代表一個單一的螢幕與一個使用者介面。
● 例如,一個email Application也許它有一個Activity用來顯示一個新的電子郵件列表(new email list),另一個Activity撰寫電子郵件,而另一個Activity則是讀取郵件,這些Activity work凝聚在一起形成了一個電子郵件應用程式,但其實每一個Activity都是獨立的,因此不同的Application可以啟動任一個Activities(如果電子郵件應用程序允許的話)。
● Services (服務,背景執行的程序)
● Service是一個Component,運作於背景,用來執行長時間運行的操作或是遠端操作的處理程序(remote process)。
● service是不提供使用者操作介面的(在背景當然不需要囉)。
● 例如:一個service在背景程序中執行音樂播放,而使用者在其他的Application中執行操作,也可能利用一個remote service經由網路取得資料而不干擾使用者正在進行互動的activity。
● Broadcast receivers (廣播事件監聽程式)
● 一個Brodcast receivers是一個component,他用來回應系統全部的廣播通知。
● 許多廣播是源自於系統本身,例如,螢幕被關閉、電量不足、圖片被截取。
● 應用程序也可以發出廣播訊息,例如,令其他的應用程式知道,有一些資料已經被下載到裝置上,是可以被使用的。
● 雖然broadcast receivers不會顯示一個使用者介面,但他們可能會建立一個status bar notification (create a status bar notification)來提醒用戶一個廣播事件發生。
● 例如它可能會啟動一個service來執行一些基礎的工作。
● Content providers (分享式的資料儲存程式)
● 一個Content providers管理一組共享的application資料。
2). Activating Components
● Intents
● 它則如同網頁中的超鏈結般,肩負不同應用程式組件間的連結啟動與傳遞訊息之任務。
它如同網站中的網頁般,多半為彼此獨立、不相互依賴的個體。而且,它們都各自擁有特定的工作任務。
● Activities (活動,前景執行的程序)
● 一個Activity代表一個單一的螢幕與一個使用者介面。
● 例如,一個email Application也許它有一個Activity用來顯示一個新的電子郵件列表(new email list),另一個Activity撰寫電子郵件,而另一個Activity則是讀取郵件,這些Activity work凝聚在一起形成了一個電子郵件應用程式,但其實每一個Activity都是獨立的,因此不同的Application可以啟動任一個Activities(如果電子郵件應用程序允許的話)。
● Services (服務,背景執行的程序)
● Service是一個Component,運作於背景,用來執行長時間運行的操作或是遠端操作的處理程序(remote process)。
● service是不提供使用者操作介面的(在背景當然不需要囉)。
● 例如:一個service在背景程序中執行音樂播放,而使用者在其他的Application中執行操作,也可能利用一個remote service經由網路取得資料而不干擾使用者正在進行互動的activity。
● Broadcast receivers (廣播事件監聽程式)
● 一個Brodcast receivers是一個component,他用來回應系統全部的廣播通知。
● 許多廣播是源自於系統本身,例如,螢幕被關閉、電量不足、圖片被截取。
● 應用程序也可以發出廣播訊息,例如,令其他的應用程式知道,有一些資料已經被下載到裝置上,是可以被使用的。
● 雖然broadcast receivers不會顯示一個使用者介面,但他們可能會建立一個status bar notification (create a status bar notification)來提醒用戶一個廣播事件發生。
● 例如它可能會啟動一個service來執行一些基礎的工作。
● Content providers (分享式的資料儲存程式)
● 一個Content providers管理一組共享的application資料。
● 你能夠在檔案系統中儲存資料,一個SQLite資料庫在web上或其他持久性的的儲存位置,你的application可以存取。
● 透由Content providers,其他的應用程式能夠查詢或是修改資料,如果內容供應者允許的話(if the content provider allows it)。
● content providers也用於私有的(private)讀取與寫入,在你的應用程式上並且不是分享的。例如,Note Pad應用程式使用一個content provider保存筆記。2). Activating Components
● Intents
● 它則如同網頁中的超鏈結般,肩負不同應用程式組件間的連結啟動與傳遞訊息之任務。
2012年5月7日 星期一
[git] 查看檔案修改歷程及差異
1). 檢視codebase歷程紀錄
git log
2). 檢視單隻檔案歷程紀錄
git log [file name]
3). 檢視單隻檔案歷程記錄+diff修改內容
git log -p [file name]
4). diff兩tag/commit間檔案修改內容
git diff [tag1/commit1]:[path/filename] [tag2/commit2]:[path/filename]
※範例
git diff be6a33b6087d5ab1de711774bcdbbf55bfd45785:vendor/si/build.sh e19a487ccaecb10fda12676e4370389241875bd4:vendor/si/build.sh
git log
2). 檢視單隻檔案歷程紀錄
git log [file name]
3). 檢視單隻檔案歷程記錄+diff修改內容
git log -p [file name]
4). diff兩tag/commit間檔案修改內容
git diff [tag1/commit1]:[path/filename] [tag2/commit2]:[path/filename]
※範例
git diff be6a33b6087d5ab1de711774bcdbbf55bfd45785:vendor/si/build.sh e19a487ccaecb10fda12676e4370389241875bd4:vendor/si/build.sh
訂閱:
文章 (Atom)

