1.获取手机上所有的APP列表?
2.每个APP包从哪里来?
3.如何备份?
4.如何还原?
5.saf的主要工作?
写完今天的任务就完成了~~~~
1.获取手机上所有的app列表
无疑要用到应用框架层的packageManager
packageManager.getInstalledPackages()可以获取目前安卓机上已经安装的PakageInfo ,包信息,包括,包名(即manifest 中appname )版本号,版本名称
apk的size可以通过提供的路径名new File(path)得出,apk的名称通过file.getName获取。
获取已经备份的apk的包名信息,可通过
pm.getPackageArchiveInfo(filePath, 0);
解析出来packageInfo
2.每个app包的路径是通过packageInfo 中就可以获取
3.如何备份。
1.如果需要备份的路径是saf路径则首先判断saf权限是否申请成功, 如果没有则会通过
Intent.ACTION_OPEN_DOCUMENT_TREE
申请saf权限
2.开始备份 : 需要备份到的路径是否存在,如果被选取备份的app之前已经备份过,则跳过,否则进行备份,用fileInputStream, fileOUtputstream也可以,我们可以用他们的getchannel方法,用chanel 的transferTo方法进行备份,能提高速度。