一、安裝器的功能:
1.安裝程式功能;
2.解除安裝程式功能。
二、技術要點:
1.掃瞄sd卡和rom上的所有apk檔案;
2.用**解析apk檔案,獲取apk檔案的icon、label和packagename;
3.呼叫系統的安裝程式進行安裝;
4.獲得所有使用者已經安裝的程式列表;
5.呼叫系統的解除安裝程式進行解除安裝。
三、實現步驟:
1.掃瞄sd卡和rom上的所有apk檔案
public class filehelper
/** scan all apk files in sd card and rom. */
public arraylistscanallapkfile()
string mcardpath = environment.getexternalstoragedirectory().getpath();
apkfileslist = new arraylist();
getfiles(mcardpath);
return apkfileslist;
} //get all apk files.
private void getfiles(string path) else
} }
} }
/** check if file exists. */
public boolean isfileexist(string path)
}
一般情況下安裝檔案的字尾都是「.apk」,但是我如果把乙個apk檔案手動把字尾名改為大寫的話發現也是可以安裝的,所以**裡面就把檔名轉化為小寫再比較字尾。
2.用**解析apk檔案獲取apk檔案的icon、label和packagename
這裡採用的是兩種方式相結合的方式讀取apk檔案的資訊,單純的使用第一種方式(指利用反射機制的方式)可以讀取絕大多數apk檔案的資訊,但是也會遇到一兩個讀不出來的情況,這時候就需要第二種方式(指利用packagemanager的方式)來輔助讀取資訊。
這樣除非該apk檔案已經損壞,不然怎麼也能讀點東西出來吧,呵呵。
3.呼叫系統的安裝程式進行安裝
4.獲得所有使用者已經安裝的程式列表
5.呼叫系統的解除安裝程式進行解除安裝
final uri uri = uri.parse("package:" + packagename); intent intent = new intent(intent.action_delete, uri); startactivity(intent);
今天就先發這麼多,剩下的留到下回分解,哈哈!!!!
自己動手寫乙個單鏈表
單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。鏈式儲存結構的線性表將採用一組任意的儲存單元存放線性表中的資料元素。由於不需要按順序儲存,鍊錶在插入 刪除資料元素時比順序儲存要快,但是在查詢乙個節點時則要比順序儲存要慢 使用鏈式儲存可以克服順序線...
自己動手寫乙個單鏈表
單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。鏈式儲存結構的線性表將採用一組任意的儲存單元存放線性表中的資料元素。由於不需要按順序儲存,鍊錶在插入 刪除資料元素時比順序儲存要快,但是在查詢乙個節點時則要比順序儲存要慢 使用鏈式儲存可以克服順序線...
自己動手寫乙個單鏈表
單向鍊錶 單鏈表 是鍊錶的一種,其特點是鍊錶的鏈結方向是單向的,對鍊錶的訪問要通過順序讀取從頭部開始。鏈式儲存結構的線性表將採用一組任意的儲存單元存放線性表中的資料元素。由於不需要按順序儲存,鍊錶在插入 刪除資料元素時比順序儲存要快,但是在查詢乙個節點時則要比順序儲存要慢 使用鏈式儲存可以克服順序線...