編輯:關於Android編程
獲取Android手機上其他應用的包名及版本號方法有很多,可以通過AAPT從APK包中直接獲取,也可以通過代碼在手機上獲取。顯然,對於產品或者用戶來說要獲取這些信息,在手機上獲取更為簡便。
下面我們來看下如何在手機上獲取其他應用的包名、版本號。
核心:通過PackageManager可以獲取到我們想要的信息,例如:程序圖標、程序名稱、包名、VersionName、VersionCode等。
/* * @Author Sun Ruichuan * * */ public ArrayList> getItems(Context context) { PackageManager pckMan = context.getPackageManager(); ArrayList > items = new ArrayList >(); List packageInfo = pckMan.getInstalledPackages(0); for (PackageInfo pInfo : packageInfo) { HashMap item = new HashMap (); item.put(appimage, pInfo.applicationInfo.loadIcon(pckMan)); item.put(packageName, pInfo.packageName); item.put(versionCode, pInfo.versionCode); item.put(versionName, pInfo.versionName); item.put(appName, pInfo.applicationInfo.loadLabel(pckMan).toString()); items.add(item); } return items; }
在獲取到所需要的信息後即可將這些信息放入到自定義的ListAdaptar裡。
class MyAdapter extends BaseAdapter {
public class Holder {
TextView tv_pakagename;
TextView tv_versioncode;
TextView tv_versionname;
TextView tv_appname;
ImageView iv_logo;
}
@Override
public int getCount() {
return allProcess.size();
}
@Override
public HashMap getItem(int position) {
return allProcess.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder;
View v;
if (convertView == null) {
holder = new Holder();
v = LayoutInflater.from(getApplicationContext()).inflate(
R.layout.list_menu, null);
holder.tv_pakagename = (TextView) v
.findViewById(R.id.tv_pakagename);
holder.tv_versioncode = (TextView) v
.findViewById(R.id.tv_versioncode);
holder.tv_versionname = (TextView) v
.findViewById(R.id.tv_versionname);
holder.iv_logo = (ImageView) v.findViewById(R.id.iv_logo);
holder.tv_appname = (TextView) v.findViewById(R.id.tv_appname);
v.setTag(holder);
} else {
v = convertView;
holder = (Holder) v.getTag();
}
holder.tv_pakagename.setText(包名:
+ allProcess.get(position).get(packageName).toString());
holder.tv_versioncode.setText(VersionCode:
+ allProcess.get(position).get(versionCode).toString());
holder.tv_versionname.setText(VersionName:
+ allProcess.get(position).get(versionName).toString());
holder.iv_logo.setImageDrawable((Drawable) allProcess.get(position)
.get(appimage));
holder.tv_appname.setText(App名稱:
+ allProcess.get(position).get(appName).toString());
return v;
}
}
初探Android N 那些讓人感興趣的東西--通知的好用功能
上周寫完那篇Blog之後就一直做著被分配到的Web任務,也就沒繼續捯饬N那些事,然後今天還在看Notification這部分,然後看到了LNotification這個包,
Android圖片緩存原理、特性對比
這是我在 MDCC 上分享的內容(略微改動),也是源碼解析第一期發布時介紹的源碼解析後續會慢慢做的事。從總體設計和原理上對幾個圖片緩存進行對比,沒用到他們的朋友也可以了解
Android Touch系統簡介(二):實例詳解onInterceptTouchEvent與onTouchEvent的調用過程
上一篇文章主要講述了Android的TouchEvent的分發過程,其中有兩個重要的函數:onInterceptTouchEvent和onTouchEvent,這兩個函數
Android移動APP開發筆記——Cordova(PhoneGap)通過CordovaPlugin插件調用 Activity 實例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式來開發移動手機APP,因此當頁面需要獲取手機內部某些信息時(例如:聯系人信息,坐