仅为自己学习标明
安卓需要学习的内容
- Android studio
- SDK
- 前几个控件
- Android Collection
- packagemanager
- packageinfo
- 其他的能提供解决办法的
- SQLite先不用
- 找数据
Android Collection
其实应该是Java中的collection和collections,以前都只是见到过collection和collections,但是没用过,只知道是一种集合,查了一下资料。
collection 是java.util下的一个线性数据类型的根接口,为各种具体集合对象提供了通用的统一的操作方法,定义了最基本的操作(增、删、改、查、取得iterator、转化为数组等),如add(),remove(),toArray(),contains();
collections是java.util下的一个处理集合对象的类,不能实例化,提供集合操作的各种静态方法,实现搜索、排序、线程安全化等操作,如
Collections.shuffle(List<?> list);//
Collections.sort(List<?> list);//按升序排序
Collections.fill(List<? super ?>list, T object);//替换
通过以下方法可以获得线程安全的集合:
Collections.synchronizedCollection(Collection c),
Collections.synchronizedList(List list),
Collections.synchronizedSet(Set set),
Collections.synchronizedSortedMap(SortedMap m),
Collections.synchronizedSorted(SortedSet s),
举例:
sort的使用:
double array[] = { 99, 87, 60, 74, 20 };
public void sort( double array[] )
{
//注意List是实现Collection接口的
List list = new ArrayList();
for (int i = 0; i < array.length; i++)
{
list.add(new Double(array[i]));
}
Collections.sort(list);
for (int i = 0; i < array.length; i++)
{
System.out.println(list.get(i));
}
}
sort(array);
// 结果:20.0 60.0 74.0 87.0 99.0
Packagemanager
PackageManger的主要职责是管理应用程序包,通过它可以获取应用程序信息。
相关类
1. PackageItemInfo类
AndroidManifest.xml文件中所有节点的基类,并不直接使用,而是由子类继承然后调用相应方法。
2.ActivityInfo类
或者 节点信息 。可获取theme 、launchMode、launchmode等属性
常用方法继承自PackageItemInfo类,下同。
3. ServiceInfo类
节点信息。
4. ApplicationInfo类
5. ResolveInfo类
根据节点获取其上一层目录的信息,通常是、、节点信息。
6. PackageInfo类
AndroidManifest.xml文件的信息
- String packageName 包名
- ActivityInfo[] activities 所有节点信息
- ApplicationInfo applicationInfo 节点信息,只有一个
- ActivityInfo[] receivers 所有节点信息,多个
- ServiceInfo[] services 所有节点信息 ,多个
7. PackageManger 类
通过getPackageManager()方法获得。
-
PackageManager getPackageManager();
// 获得一个PackageManger对象
-
Drawable getApplicationIcon(String packageName);
// 返回给定包名的图标,否则返回null
-
ApplicationInfo getApplicationInfo(String packageName, int flags);
// 返回该ApplicationInfo对象
// flags标记通常直接赋予常数0
-
List getInstalledApplications(int flags);
// 返回给定条件的所有ApplicationInfo
// flag为一般为GET_UNINSTALLED_PACKAGES,后续可进一步过滤结果
-
List getInstalledPackages(int flags);
// 返回给定条件的所有PackageInfo
-
ResolveInfo resolveActivity(Intent intent, int flags);
// 返回给定条件的ResolveInfo对象(本质上是Activity)
// intent 是查询条件,Activity所配置的action和category
// 可选flags:
// MATCH_DEFAULT_ONLY :Category必须带有CATEGORY_DEFAULT的Activity,才匹配
// GET_INTENT_FILTERS :匹配Intent条件即可
// GET_RESOLVED_FILTER :匹配Intent条件即可
-
List queryIntentActivities(Intent intent, int flags);
// 返回给定条件的所有ResolveInfo对象(本质上是Activity)
-
ResolveInfo resolveService(Intent intent, int flags);
// 返回给定条件的ResolveInfo对象(本质上是Service)
-
List queryIntentServices(Intent intent, int flags);
// 返回给定条件的所有ResolveInfo对象(本质上是Service),集合对象
8. PackageStats 类
安装包的大小信息。AndroidSDK中并没有显式提供方法获得PackageStats对象,只能通过反射机制来调用系统中隐藏的函数(@hide)。
遇到的问题
- 现在可以尝试获取安卓的内存数据,但是他是直接展示在安卓应用上的,现在还不知道如何把数据打包保存位csv文件格式
- 不同版本都不适配,