2018-06-04 17:51:48 bingocoder 阅读数 4222
  • Android底层技术:Java层系统服务(Android Service)

    为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架裡接近Linux/Driver 的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java 应用程序來使用Driver/HW Device 特色的重要管道。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。

    32905 人正在学习 去看看 高煥堂

        最近学习到利用Service播放音乐,需要在Android系统中 mnt/sdcard 下存放音频文件。学习SharedPreference时生成的 .xml文件,存储在/data/data/应用程序包/shared_prefs中,两者都需要打开Android Device Monitor 但是我在打开时遇到了一些问题。总是报错,如下:


这个错误很奇怪,在网上找了好久。费了很大劲找到了一句话 把“......下的jre复制到sdk下的........中 ”说的不太详细,但总算是帮我解决了问题。我在这里详细说明一下。

        出错的原因是sdk文件夹中缺少jre。需要我们把 Android Studio中的jre复制到sdk中。jre在如下位置:


复制到C:\Users\管理员用户\AppData\Local\Android\Sdk\tools\lib\monitor-x86_64,如果你没有设置的话,sdk的默认安装路径在此。

        把jre 复制完成后再次在Android Studio中打开 Android Device Monitor 就不会出现问题了。

 

出现了想要的界面:


这样就能继续学习了,有时候卡到一个地方没有解决办法,真的挺打击人的,没有了继续学习的心态。。。 但是坚持,办法总还是有的。


2018-03-31 21:50:16 qq_35686432 阅读数 1282
  • Android底层技术:Java层系统服务(Android Service)

    为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架裡接近Linux/Driver 的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java 应用程序來使用Driver/HW Device 特色的重要管道。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。

    32905 人正在学习 去看看 高煥堂

今天使用AS启动Android Device Monitor失败了

错误提示:

A Java Runtime Environment (JRE) or Java Development Kit (JDK)
must be available in order to run Monitor. No Java virtual machine
was found after searching the following locations:
/home/android/YL/AndroidStudio/sdk/tools/lib/monitor-x86_64/jre/bin/java
java in your current PATH

google一下在stackoverflow找到了解决办法,分享一下:

把Android Studio目录下的jre文件夹整个复制到sdk目录下的tools\lib\monitor-x86_64中,就可以启动了

虽然感觉有点傻

可以的应该是改路径吧,当时没找到哪里设置路径

 

做一个软链接吧?复制好傻

2017-10-07 12:39:00 wint_ing 阅读数 189
  • Android底层技术:Java层系统服务(Android Service)

    为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架裡接近Linux/Driver 的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java 应用程序來使用Driver/HW Device 特色的重要管道。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。

    32905 人正在学习 去看看 高煥堂
  • Error: 启动Android Device Monitor 报错误:
unexpected error while parsing input: invalid ui automator hierarchy file
  • 解决方案:
step1:关闭Android Device Monitor应用及进程
step2: mac 及linux 运行如下命令
 #rm -rf ~/.android/monitor-workspace
2017-12-12 16:11:58 u014753748 阅读数 643
  • Android底层技术:Java层系统服务(Android Service)

    为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架裡接近Linux/Driver 的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java 应用程序來使用Driver/HW Device 特色的重要管道。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。

    32905 人正在学习 去看看 高煥堂

最近,在新电脑上安装了Android Studio等Android的开发环境,启动Android Device Monistor出现如下错误:




查看日志如下:

!SESSION 2017-12-12 15:45:03.525 -----------------------------------------------
eclipse.buildId=unknown
java.version=9.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -data @noDefault


!ENTRY org.eclipse.osgi 4 0 2017-12-12 15:45:04.634
!MESSAGE Bundle reference:file:org.apache.ant_1.8.3.v201301120609/@4 not found.


!ENTRY org.eclipse.osgi 4 0 2017-12-12 15:45:04.634
!MESSAGE Bundle reference:file:org.apache.jasper.glassfish_2.2.2.v201205150955.jar@4 not found.

...........

!ENTRY org.eclipse.osgi 4 0 2017-12-12 15:45:05.196
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)

上面日志中间省略了,通过日志的错误在网上查了很久,各种是还是没有不行。

通过和之前在旧电脑的对比,发现在新电脑上用的jdk是9.0的,试着将jdk换成8.0版本的,果然就成功了。

2018-03-08 13:35:22 xingnan4414 阅读数 359
  • Android底层技术:Java层系统服务(Android Service)

    为什么我们需要学习撰写系统服务呢? 底层系统服务是Android 框架裡接近Linux/Driver 的部分。为了充分发挥硬件设备的差異化特性,系统服务是让上层Java 应用程序來使用Driver/HW Device 特色的重要管道。于此,先仔细解析Java层系统服务的架构,然后阐述这系统服务的代码开发要点,以及其API设计方法。

    32905 人正在学习 去看看 高煥堂

启动方式,先启动android device monitor(之前去文件夹tools里面找hierarchyviewer.bat行不通了,推荐使用adm):
这里写图片描述

然后出现了这个错误:

 hierarchyviewer]Unable to get view server version from device 2d2843d
 hierarchyviewer]Unable to get view server protocol version from device 2d2843d

先检测你的view server开启没有,解决办法如下链接:点我查看具体解决方法

如果是开启的话仍然打不开,进行如下操作 官方开启hierarchy方法;配置环境变量ANDROID_HVPROTO=ddm 到path,然后重启amd ,点击如图所示的reset就行了:

这里写图片描述

没有更多推荐了,返回首页