編輯:關於Android編程
如果想要獲取系統手機應用的詳細信息,那麼下邊代碼可以直接作為模板使用。筆者對每一行代碼都做了注解,供您參考。直接上代碼:
package com.example.itydl.engines; import java.io.File; import java.util.ArrayList; import java.util.List; import com.example.itydl.domain.AppBean; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Environment; /** * Engine類,獲取所有安裝的apk詳細信息 * @author ydl * */ public class AppManagerEngine { /** * * @param context * @return * sd卡的可用空間,單位為byte */ public static long getSDAvailSpace(Context context){ long sdAvaliSpace = 0; //獲取sd卡的目錄 File externalStorageDirectory = Environment.getExternalStorageDirectory(); //獲取sd卡的可用空間。通過文件夾來間接計算剩余空間大小 sdAvaliSpace = externalStorageDirectory.getFreeSpace(); //把獲取的剩余數據返回 return sdAvaliSpace; } /** * * @param context * @return * 手機ROM中的剩余空間 */ public static long getRomAvailSpace(Context context){ long romAvaliSpace = 0; //獲取rom所有目錄結構 File dataDirectory = Environment.getDataDirectory(); //獲取rom的可用空間。通過文件夾來間接計算剩余空間大小 romAvaliSpace = dataDirectory.getFreeSpace(); //把獲取的剩余數據返回 return romAvaliSpace; } /** * * @param context * @return * 所有的安裝了的apk的詳細信息 */ public static List getAllInstalledApks(Context context){ List apksBean = new ArrayList(); //獲取包管理器 PackageManager manager = context.getPackageManager(); //通過包管理器對象,獲取所有的安裝了的apk的信息 ListinstalledPackages = manager.getInstalledPackages(0);//Return a List of all packages that are installed on the device. //遍歷所有應用包信息,分別得到每個應用包的詳細信息。就可以對該應用的數據在界面顯示了 for (PackageInfo packageInfo : installedPackages) { //把每個包的應用信息,封裝到javabean裡面。創建AppBean類 AppBean bean = new AppBean(); //設置apk的包名 bean.setPackName(packageInfo.packageName); //設置apk的名字,記住 bean.setAppName(packageInfo.applicationInfo.loadLabel(manager)+"");//loadLabel(manager)獲取標簽 //設置apk的圖標 bean.setIcon(packageInfo.applicationInfo.loadIcon(manager)); //設置apk的大小。通過獲取apk文件,間接獲取該apk的占用空間大小 String sourceDir = packageInfo.applicationInfo.sourceDir;//得到該應用的一個路徑 //得到該路徑的文件 File file = new File(sourceDir); //得到apk的大小,字節為單位 bean.setSize(file.length());//Returns the length of this file in bytes. //根據標志位,是否是系統apk或者用戶apk //獲取該apk的flag屬性 int flag = packageInfo.applicationInfo.flags; //判斷是否是系統的apk if((flag&ApplicationInfo.FLAG_SYSTEM)!=0){//ApplicationInfo.FLAG_SYSTEM表示系統的apk的flag標志 //是系統的apk bean.setSystem(true);//是系統應用的標記 }else{ //不是系統的apk bean.setSystem(false); } //判斷應用安裝在了系統還是sd if((flag & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ //安裝在了sd卡 bean.setSd(true);//sd卡的標記 }else{ bean.setSd(false);//rom中的標記 } //把獲取的每一個apk的信息對象封裝到數據源模型層 apksBean.add(bean); } return apksBean; } }
閒來無事,總結了兩個自定義的ProgressDialog,大家可以參考下,根據自己需要進行選擇修改:實現效果:示例1:示例2: 代碼如下:MainA
在上文當中,我們描述了如何使用TextSwitcher控件。本文將通過分析Android Framework層源碼來闡釋它是如何實現文本的平滑切換的的。TextSwitc
對話框 Dialog什麼是對話框對話框是在當前的頁面之上彈出的小窗口, 用於顯示一些重要的提示信息, 提示用戶的輸入,確認信息,或顯示某種狀態.如 : 顯示進度條對話框,
本例實現一個簡單的場景: 1、使用C編寫一個方法,接收1個參數,方法中調用Java的方法。 2、Java類中編寫一個方法,接收一個參數。 3、模擬調用場景:點擊按鈕 -&