㈠ 使用adb查看别人家APP的数据
1.说明
2.使用adb命令获取指定应用的包名和Activity名称
3.使用adb命令启动/关闭APP
4.使用adb命令把手机中的apk导到电脑上
5.查看apk中的androidManifest.xml文件
6.使用adb命令进行数据备份
7.查看数据
8.结语
查看其它APP数据的前提是该APP默认开启数据备份,也就是allowBackup属性。
想问一下大家在平时的开发中对应用的安全性有很在意么?有可能大家会想到加密、混淆、apk加固,但还有一些其他细节的东西需要大家去了解。今天就介绍一下android:allowBackup属性。这个属性在开发的过程中通常是默认开启的,Google起初是为了防止数据丢失,留下了这个功能,但是这个属性也容易造成一些隐私数据的泄露。如果你想关闭可以把它设置为false。那么这个属性在哪里设置呢,就在AndroidManifest.xml文件中的application标签中。
要备份APP的数据,首先我们要知道这个APP的包名才可以进行备份。
在手机或模拟器上面运行APP,然后输入命令: adb shell mpsys activity top #
这时会输出很多东西,你可以用查找功能Ctrl+F,找到TASK,下图红框中就是要找的包名
命令: adb logcat| findstr START
然后在手机或模拟器上点击你想要获取的应用,这时就会在cmd中出现相应的包名和类名了。
启动APP的命令: adb shell am start -W -n package/activity
命令窗口通过adb shell 进入android 的Linux命令界面,输入am help看到如下信息:
它会展示出在不同场景下(比如start-activity、start-service等)不同参数代表的意义一些参数的意义,情况太多了这里就不细说了。
回到正题,后面的package和activity就是上面获取包名第二种方法中提到的cmp,比如我们要启动谷歌地图: adb shell am start -W -n com.google.android.apps.maps/com.google.android.maps.MapsActivity
在这里我们再做一个延伸, 用命令做APP的冷启动和热启动操作,然后记录启动的时间
我们看到上图中有三个数字ThisTime、TotalTime和WaitTime,这三个数字就是本次启动APP所花费的时间。
热启动时退出退出APP的命令: adb shell input keyevent 3 ,这就相当于按了手机的home键,然后我们再执行启动APP的命令,这样就完成了热启动。
我们看到热启动花费的时间比冷启动少了很多,一套冷、热启动的流程我们就走完了。接下来就看我们怎么去优化了,让它们变的更少。所以我们在平时做启动优化的时候可以把自己的APP和一些优秀的APP做一下对比看看还差多少。
上面已经说过了一种退出APP的方法了,接下来这个命令是相当于杀掉当前的APP进程。
命令: adb shell am force-stop package
这时候再使用启动命令,就相当于冷启动了。
有的时候我们在手机上查看和操作apk不是特别方便,而且通过文件管理找apk也很难找。接下来就介绍怎么用adb命令把手机中的apk导到电脑上。
通过包名获取apk在手机中的存储路径,命令 adb shell pm path package
导出apk文件,到当前目录下
命令: adb pull 路径
这一步就要看一下apk中有哪些东西了,主要还是看一下AndroidManifest.xml文件当中的allowBackup设置。
我平常用的方法就是吧apk文件的后缀该成zip,然后就可以看到里面的东西了。下面的是谷歌地图的apk的构成。
下面来看一下AndroidManifest.xml文件,会看到都是乱码,但是关键的信息还是可以获取的,我们目前想要的就是下图红框中的allowBackup属性,像谷歌的APP肯定是把它设置成false的,所以我们没办法备份它的信息的。
那么我们怎么看一个应用的allowBackup属性设置成true还是false呢,我的观察和实践出来的方法是看allowBackup后面有没有小方框,有就代表设置了true。如果有哪位大神知道好的可靠的方法还请留言告知。
下面是其他apk中的AndroidManifest.xml文件,后面带了个小方框。
在了解到APP可以备份之后,我们就可以开始做坏事了,哈哈。
备份的命令: adb backup -nosystem -all -noapk -noshared -f data.ab package
[-system | -nosystem] 是否备份系统
[-apk | -noapk] 是否备份apk安装文件
[-shared | -noshared] 是否备份手机存储空间
-f *.ab 存档格式一定要是.ab
package:包名
在运行命令之后,手机或模拟器会出现一个页面要求你输入备份密码,这个密码你可以随便输入,但你要记住,在后面查看ab文件的时候会用到。
输入密码,点击【备份我的数据】之后就开始备份了,备份完成之后会有提示,这时就是生产一个ab文件了。
ab文件大家很少接触,这里使用abe工具(链接: https://pan..com/s/1NPbhtF1fyJcHOm1CXwi9Dg
写这篇文章还是提醒大家在平时的开发中要注重APP数据的安全问题,毕竟数据还是相当重要的。
如果有哪里写的不对的地方,请指出,我会及时改正。
㈡ 怎么华为手机照片莫名其妙消失了
如果您图库中的图片丢失,请您按照以下方法尝试解决:
一、 检查最近删除、隐藏相册、屏蔽相册中是否有丢失的图片
1. 检查“最近删除”(部分手机不支持最近删除,请以手机实际使用情况为准)
进入 图库 > 相册 > 最近删除,查看是否有丢失的图片,如果有,可以长按被删除的照片,点击恢复即可。
2. 检查“隐藏相册”(部分手机不支持隐藏相册,请以手机实际使用情况为准)
在图库 > 相册 > 三个点按钮> 隐藏相册中查看是否有您丢失的相册,如果有,请关闭对应相册后面的开关,相册即可恢复显示。
3. 检查“屏蔽相册”(部分手机不支持屏蔽相册,请以手机实际使用情况为准)
EMUI 9.X/10.X / Magic UI 2.X/3.X:进入图库 > 相册 > 其他相册 > 查看已屏蔽相册,检查是否有您丢失的相册,若有取消屏蔽即可。
EMUI 11.0 / Magic UI 4.0:进入图库 > 相册 > 三个点按钮> 屏蔽相册, 检查是否有您丢失的相册,若有取消屏蔽即可。
二、检查是否退出华为账号导致图片丢失当您打开了云空间中的图库数据同步开关时,云空间的图片会同步到手机上。退出华为帐号后,云端照片将不在图库中显示。如果您近期退出过华为帐号,请您重新登录华为帐号,并在手机设置>华为帐号>云空间>图库中打开图库数据同步开关,云端照片即可重新同步到手机上。如果您误删除过云端照片,您可尝试找回误删的图片。
三、检查文件管理中是否有图片
1. 打开显示隐藏文件和显示隐藏媒体文件的开关。操作路径:
EMUI 8.X / 9.0 & Magic UI 2.0:进入文件管理 > 更多 > 设置,打开显示隐藏目录和文件和显示隐藏的媒体文件开关。
EMUI 9.1/10.X/ 11.X & Magic UI 2.1/3.X/4.X : 进入 文件管理 > 我的 > 设置 ,打开显示隐藏文件和分类中显示隐藏的媒体文件开关。
2. 然后在文件管理中查看对应文件夹下面查看是否有丢失的图片:
相机拍摄的图片或视频:文件管理 > 分类 > 内部存储 > DCIM > Camera。
截屏和录屏:文件管理 > 分类 > 内部存储 > Pictures > Screenshots。
蓝牙接收的图片:文件管理 > 分类 > 内部存储 > bluetooth。
三方应用保存的图片:您可以在应用中保存一张图片,然后在图库中点击图片右上角圆圈i图标查看路径。
最近删除的图片:进入文件管理 > 分类 > 内部存储 > Pictures > .gallery2 > recycle查看是否有文件,可以尝试使用图片/视频方式打开,查看是否是丢失的图片。
如果文件管理中有图片:
(1) 若目录中存在.nomedia文件或文件夹,请删除此文件。
(2)若系统升级刚完成,请等待一段时间再查看图片是否显示。
(3)进入设置,搜索进入应用管理,点击三个点按钮>显示系统进程 > 媒体存储 > 存储 > 删除数据,查看图片是否显示。
(4) 进入设置,搜索进入应用管理,点击三个点按钮>显示系统进程 > 图库 > 存储 > 删除数据,查看图片是否显示。
(5)若图片存储位置无法被图库扫描到,请将图片复制至内部存储中可以正常显示的文件夹下。例如:内部存储 > Download,复制后在图库的已下载相册中查找。
温馨提醒:完成操作后请重启手机等待一段时间,然后在所有照片或最近删除中查找是否有丢失的图片。以上操作不会造成数据丢失。但会导致我的收藏、时刻以及发现相册丢失;删除媒体存储数据会将来电铃声还原为出厂设置,需要您重新设置。
如果文件管理中没有图片:
请按照以下三种场景进行排查:
(1)“图库”中找不到图片/不显示图片
a. 图片可能没有刷新出来,请进入多任务界面关闭图库,然后重新进入图库,查看照片是否还存在。
b. 如果图片保存在SD卡中,SD卡被移除会导致图片丢失,请将外置SD卡重新插入手机,然后通过文件管理器查看图片是否还在。
c. 手机处于访客模式/多用户/隐私空间时,主用户空间图片将不显示,请使用机主密码解锁手机后查看图片是否存在。
d. 图片可能被移入了保密柜。请您进入文件管理 > 分类 > 保密柜,查看保密柜中是否有丢失的图片,如果有,长按图片后点击移出,即可在图库中查看图片。
(2)图库中缩略图破损、点击缩略图不显示大图/仍然是灰色图片,重启后全部消失或一张张消失
a. 打开缩略图仍然是灰色图片,图片可正常查看时,可能是开启了熄屏快拍功能,请进入相机设置界面查看。
b. 如果使用云相册功能同步照片时,未同步完成就断开了网络连接,则只生成照片缩略图,请重新同步照片。
c. 如果只看到缩略图点开没有图像,可能是图片生成过程中出现运行异常,图片实际并未成功保存。
(3)使用第三方软件出现图片丢失或重启后图片丢失
部分第三方软件因为自身设计问题导致图片被删除。请您检查手机中的可疑应用,建议您先备份重要数据后(微信/QQ等应用需单独备份)卸载此第三方应用。
四、如果您之前备份过数据,尝试恢复图片
(1)如果您曾经备份过数据在云空间,请尝试恢复数据。
(2)如果您曾经备份过数据到外部存储,请参尝试恢复数据。
(3)如果您曾经使用过华为手机助手备份数据,请尝试恢复数据。
如果通过以上方法还未找回图片,可能您的图片已经彻底删除了,建议您平时将重要数据及时做好备份(微信/QQ等应用需单独备份),比如将重要的图片备份到华为云空间中。