Android SDK 说明

Jerry 发表于 2015年06月10日 14:39 最后修改于 2016年05月27日 18:42

OneAPM Android SDK 会在用户 Java 代码编译期间检测用户用了哪些可能影响用户的 App 性能的接口,并在这些接口执行前记录接口执行的开始时间,在执行后,记录接口的结束时间。

这两个时间的差值就是接口的执行时间,加上其他一些可能的参数一起上报给 Server。Server 根据这些收集到的数据分类的可视化展示,就是你们看见的数据了。

我们的 Agent 启动之后会自己启动一个自己的线程,等于说 SDK 试运行在和用户 App 隔离开的一个沙盒中。可能影响用户 App 性能的安卓系统接口,例如数据库操作中的 insert、update 等;json解析中的 parse 等方法,页面加载中的 onCreate 等方法,图片加载中的 bitmapFactory 中的 decodeFile 方法。希望这个简单的说法能说明白,不明白的或者不到位的请联系 OneAPM 的技术支持。

需要说明的是目前 OneAPM Eclipse 插件是不支持 JDK 1.8 的,使用 JDK 1.8 的用户可以通过下载安装 OneAPM SDK 来监控管理 App。

Q & A

  1. 消耗流量大吗?

    经过测试绝大多数情况下载每分钟几十字节到几百字节最多不超过 1K 。这取决于您代码中可能影响性能API的使用数据以及用户操作的频繁度。

  2. 是否会引起 Apps 的崩溃?

    不会。原因见原理中说的,SDK 运行在一个单独的线程里面,如果崩溃最多是 SDK 自己挂掉。

  3. 是否会被360之类的软件认为是不可靠的软件。

    不会,从原理看我们没有做超越安卓系统权限的任何事情。SDK 只是按照常规的 API 搜集必要的性能数据。

  4. 安卓系统版本是从内核识别,是否有从 ROM 识别?

    OneAPM SDK 是通过系统提供的 API 来获取的版本,不是从内核提取的。如果您有从内核提取的需求,请联系我们的技术支持。

  5. 地理信息是通过什么获取的?

    通过 IP 地址。

  6. 运营商信息展示中,出现的 none,unknow 字段的含义?

    None: 没抓取到信息。

    Unknow: 抓取到的字段是非法字段,或无法识别。

  7. 当断网时,数据缓存保留时间?
    突然断网,Agent 会将抓取的数据保存在本地,当有网络时,及时上传,但如果应用被退出,则缓存数据会被清空。本地缓存会根据所抓取数据的类型控制缓存的数量。

 

回复

11发表于 2015年08月06日 11:14

你好。我看上面的说明中提到:

"我们的 Agent 启动之后会自己启动一个自己的线程,等于说 SDK 试运行在和用户 App 隔离开的一个沙盒中。可能影响用户 App 性能的安卓系统接口,例如数据库操作中的 insert、update 等;json解析中的 parse 等方法,页面加载中的 onCreate 等方法,图片加载中的 bitmapFactory 中的 decodeFile 方法。"

是指你们的agent,可能会影响到用户的app性能?

您需要登录后才可以回复