Android Studio 中 Android Device netspeedmonitorr无法打开

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
logcat已经不在了。
这里显示工具箱之后,会看到一个小标签
为什么只能在这里显示,我想还原回去怎么弄?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
管道所有的AS项目,然后新建一个项目,然后在打开logcat有问题的项目,并且隐藏logcat到右上角,只看到一个图标(这是旧项目)然后返回到新的项目的窗口,拖动logcat到右边,如下效果松手。
然后拖住logcat,到原来的位置,如下效果松手:点击如下画圈的地方开始拖动:
最后你返回到原来的旧项目的窗口,然后点击logcat,就好了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
托出来的窗口就是这样的
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。解决Android studio 中的 Android Device Monitor 中 File Explorer 无法打开data目录的方法(转载 http://www.jianshu.com/p/d8a9a2918c61)
时间: 10:38:36
&&&& 阅读:2459
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&Android Device Monitor 文件管理的常见问题& (转自)
Android Device Monitor 是 Android Studio 中用于监测模拟器或真机运行状态的一款开发者工具。但开发者在使用它的过程中往往会遇到很多问题,尤其对于新手。本文分析了实际学习中遇到的问题,包括:1. File Explorer 不显示文件;2. 无权访问 data 等文件; 3. 无权下载文件等,涉及到 Monitor 的基本操作以及 adb shell 和命令行的操作等。
最近在看《第一行代码》(第二版)中关于数据存储方案的介绍。数据的状态分为两种:瞬时状态和持久状态,一般保存在内存中的数据随着活动的关闭,数据也就销毁了,如果我们想保存这些数据,该怎么办呢?书中介绍了三种实现数据持久化的方法,分别是:文件存储,SharedPreference 存储以及数据库存储。
在学习第一种数据持久化方法文件存储的时候,我们通过 Context 类中的 openFileOutput() 方法创建一个指定了保存路径的 FileOutputStream 对象 out,然后用这个 out 对象去创建一个 OutputStreamWriter 对象,之后再用这个 OutputStreamWriter 对象创建一个 BufferedWriter 对象 writer,我们就是通过这个 writer 的 write() 方法向文件输出流写入我们想要保存的数据的。文件写入数据之后默认保存在 /data/data/(package name)/files 目录下。我们可以通过 Android Studio 中的 Android Device Monitor 去查看,Android Device Monitor 的打开方法如下所示。
打开 Android Device Monitor
问题1:设备 Offline, File Explorer 空空如也
打开 Android Device Monitor 之后,发现里面什么都没有,左边的面板上显示了一台模拟器,但出于 offline 状态,不对呀,我的模拟器命名开着的呀,它正在运行我刚刚写的 app 呢,怎么这里会显示离线状态呢?于是我试着 Google 去找解决方案。
File Explorer 不显示文件
在 StackOverflow 上我发现了有人和我一样也碰到了这个问题,不过底下的回答寥寥无几,我找到了一个最高赞的答案(其实也就一个赞....),如下图所示,他的意思是他也不明白其中的具体原理,但是他发现如果先打开 Android Device Monitor,然后再运行模拟器,就可以解决这个问题。
解决 File Explorer 不显示文件(from SO)
于是我按照这个方法尝试,先打开 Android Device Monitor,里面什么也没有,然后打开模拟器,随着模拟器的启动,Monitor 左侧面板出现了 offline 的模拟器,然后再相继启动很多服务,最后就显示为 online 了,如下图所示,这样我们就可以通过 Monitor 中的 File Explorer 标签访问模拟器中的文件了。
解决 File Explorer 不显示文件
问题2:File Explorer 中的文件无法访问
还记得刚刚说的吗,openFileOutput() 方法生成的文件存放在一个默认路径,即 /data/data/(package name)/files 下。由于我的包名是 com.knightaoko.filepersistencetest,所以在下文的叙述中,大家看到这个陌生的字符串不要惊讶,实际操作下替换成你自己的包名即可。(这期间还碰到个问题,好像 Android Device Monitor 不能和 Instant Run 同时运行,所以在此需要把 Instant Run 功能关闭,怎么关闭大家自行 Google,很简单的。)于是,下一步当然是打开这个路径了,找到 data,点击,没反应,再点击,还是没反应。又遇到问题了,我无法访问 data 目录,通过 Google 搜索,我知道了 File Explorer 中的每个文件和文件夹都是有访问权限的,如下图红框中标识的就是 data 文件夹的访问权限。
访问权限是 drwxrwx--x,这玩意是什么意思呢?我相信,学过 Linux 的同学肯定一眼就知道这是什么意思。不知道也没关系,听我慢慢道来,这一个字符串一共有 10 个字符,第一个字符表示是文件夹还是目录,如果第 1 个字符是 d,则表示是文件夹。后面 9 个字符可以分为三组,第一组 rwx 表示所有者(user)对文件的访问权限,r 表示可读(read),w 表示可写(write),x 表示可被执行,- 表示没有该权限;第二组 rwx 表示组群(group)对文件的访问权限;第三组 --x 表示其他人(other)对文件的访问权限,可以看到,没有 r 和 w,说明 data 对其他人来说是不可读不可写的,怪不得我们不能打开它呢,那怎么办呢?于是我又网上搜啊搜,发现可以通过一定的方法修改文件的访问权限的,对,这个方法就是 adb shell。
adb shell 是 Android SDK 中的一个工具,你可以在你的 Android SDK 目录下的 platform-tools 找到它,下图就是我电脑上的该目录:
adb 所在目录
我们需要将这个目录添加到环境变量,为的是后面在命令行直接调用 adb 中的命令。比如在此我将 D:\AndroidSDK\platform-tools 添加到环境变量(具体怎么添加应该不用手把手教学了吧)后,运行 cmd 命令行,然后输入下面的命令。
通过 adb shell 获取文件访问权限
adb shell 是打开 adb 外壳程序。
su 是获取 root 权限,只有 root 权限才能修改文件的访问权限。
底下一堆 chmod 777 是把对应的文件或文件夹的访问权限的后 9 位设置成 rwxrwxrwx,777 就三个二进制 111, 喝起来就是 (9 个 1),即相当于把后 9 位访问权限都置 1,于是就成了 rwxrwxrwx,即所有用户都具有该文件的全部访问权限(妈妈再也不用担心我打不开 data 了…)。我们来看看结果:
修改后的文件访问权限
问题3:File Explorer 中的文件无法 pull(下载)
可以看到这些目录都能访问了,可以在包名目录下看到生成的 data 文件了,下一步我们想把这个文件复制到我们的电脑里,怎么操作呢?选中该文件,点击右上角的 pull 图标即可,如下图所示:
文件下载按钮
点击之后,选好保存路径。结果我们发现文件并没有保存下来,在 Console 窗口还提示了错误:
文件下载出错
意思就是拉取文件失败,因为你无权进行该操作。又是一脸懵逼,怎么办?还能怎么办,继续 Google 呗!这里我找了很久,终于发现了解决方案:adb root 。没错,在命令行输入这条语句,完美解决!(注意是在 windows 下的命令行,而不是 adb shell 里,当然前提是你添加了 adb 的目录到你的环境变量里)
通过 adb root 获取文件下载权限
然后我们再来 pull 一下,卧槽,崩溃了,又发现问题了:Failed to pull selection。
文件下载再次出错
怎么办?OK,继续 Google,在 StackOverflow 里找到了一个高赞的解决方法:
重新选择模拟器(from SO)
什么意思?重新选择一下 Android Device Monitor 左侧面板的设备即可,没错!就是把下图红框中国的玩意儿点一下。
重新选择模拟器
好了,我们再找到刚刚那个要拷贝的文件,pull 一下,卧槽!!成功了,真是踏破铁鞋无觅处,得来全得靠姑姑(谷歌)。
文件下载成功
总结一下吧,初次使用 Android Device Monitor,本来只是用来辅助学习 SQLite,结果一上午碰到一大堆问题,总算都一一解决了,在此总结一下。
Android Device Monitor 要在模拟器运行之前就打开,这样才不会出现模拟器设备 offline 的问题。
Android Device Monitor 和 Instant Run 貌似有冲突,在用 Android Device Monitor 时关闭 Instant Run 功能。我相信还有更好的解决方法,不然打开一个大一点的 APP,不能同时用这两个功能,那多影响效率啊。只是我目前还处于学习阶段,上述方案能解决我当前的问题,不影响我进一步学习,那它就是 OK 的。
操作 Android Device Monitor 时,应该默认把你当做其他人(other)对待,所以你对文件的访问权限很受限制。解决方法是在命令行中,通过在 adb shell 里获取 root 权限,并更改相应文件的访问权限,当然记得将 adb 所在目录添加进环境变量。
能访问了但是不能下载也是很麻烦的事,通过在命令行运行 adb root 获取文件的下载权限。
通过上述操作之后,就能正常使用 Android Device Monitor 进行文件管理了。但不幸的是,当你重启模拟器,或启动另一台模拟器时,这些配置又得重新来过,否则你还是无法访问和下载模拟器中的文件。这个问题的根源在于权限二字,问题不是不能获取权限(通过 adb shell 可以获取 root 权限),而在于获取权限太麻烦了,希望后续版本的 Android Studio 可以直接在 Android Device Monitor 的 GUI 中设置相应获取权限的命令,使得广大 Android 开发者对模拟器中的文件操作更有效率。
Google 大法好。
最后还有一点,我目前是跟着《第一行代码》(第二版)学习 Android 开发的,但是作者郭霖老师没有组织读者交流群,所以在学习过程中遇到问题时,要么不知所措,要么大费周折才解决一个问题。如果有志同道合的同学一起交流,那样学习更有效率,遇到问题也能大家一起讨论解决。不知道大家有没有《第二行代码》学习社群推荐,或者有意向和我一起组建一个这样的学习环境,大家可以在留言区畅所欲言。
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/liu6/p/7088490.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!18被浏览2,672分享邀请回答14 条评论分享收藏感谢收起0添加评论分享收藏感谢收起他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)解决Android 7.0 (Android N)中 Android Device Monitor(DDMS)的 File Explorer不显示目录树的问题
我的图书馆
解决Android 7.0 (Android N)中 Android Device Monitor(DDMS)的 File Explorer不显示目录树的问题
将手机升级到 7.0后,打开Android Device Monitor(DDMS)后,File Explorer中显示一片空白。如下:
Android Device Monitor (DDMS)的版本如下:
不管用monitor.bat(注ddms.bat已弃用)还是通过Android Studio中的图标启动(如下图),都是一样的问题。
点击蓝色框中的button,启动Android Device Monitor。
2. 解决方法
情况一:通过monitor.bat或者Android Studio中图标启动时
第一步:下载ddmlib.jar
文件大小:282KB。
或者,百度云: 提取密码:sygc
第二步:在Android SDK的tools目录中搜索ddmlib.jar
当前目录为Android SDK的tools目录。
$ find . -iname *ddmlib*
./lib/ddmlib.jar
(不用替换它)
./lib/monitor-x86_64/configuration/org.eclipse.osgi/bundles/2/1/.cp/libs/ddmlib.jar123123
可能会搜出多个,我们要替换的是tools/lib/monitor-x86_64/configuration/org.eclipse.osgi/bundles/2/1/.cp/libs/ddmlib.jar
有可能你的目录与这个不同,请以实际目录位置为准。
第三步:用刚才下载到的ddmlib.jar替换刚搜到的ddmlib.jar
需要注意的是,替换的时候,先将Android Device Monitor关掉。
第四步:再次打开Android Device Monitor,就可以看到目录树了(如下)
情况二:在eclipse中显示File Explorer
前提是下载了ddmlib.jar。
第一步:搜索eclipse 中的 ddmlib.jar
例如,在我的eclipse中,ddmlib.jar在eclipse/configuration/org.eclipse.osgi/8/0/.cp/libs目录下。
$ find . -iname ddmlib.jar
./configuration/org.eclipse.osgi/8/0/.cp/libs/ddmlib.jar1212
你的ddmlib.jar所在的位置可能与我的不同,请以实际目录位置为准。
第二步:用刚才下载到的ddmlib.jar替换刚搜到的ddmlib.jar
第三步:重新打开eclipse,File Explorer就可以显示正常了
TA的最新馆藏
喜欢该文的人也喜欢

我要回帖

更多关于 dubbo monitor 的文章

 

随机推荐