小编Mih*_*x64的帖子

AdMob 原生广告滞后

我有NativeContentAdView一个ListView项目。当我调用setNativeAd(NativeAd)它时,会发生明显的滞后。所有AdMob的类和方法名是错位(zzdtzzalpzzow等),所以我忽略它们。

AdMob 在View#onAttachedToWindow回调中执行的操作:

  • 注册几个BroadcastReceivers(每个都需要一个 Binder 事务)(总和约 10 毫秒)

AdMob 在OnScrollChangedListener#onScrollChanged以下方面的表现:

  • 数十次 DP 到 PX 转换,Display#getMetrics为每次转换调用和触发 Binder 事务(总和约 7 毫秒)

  • 生成一些 JSON (~8 ms)

  • 评估一些 JS(~7 毫秒)

  • 创建一个WebView实例(~5.5 毫秒),设置它(~9 毫秒),要求它loadUrl(~7.5 毫秒)

内部Handler#handleCallbacks(即Handler#post):

  • 创建一个WebView,设置它,添加到 Window 并评估 JS(~27 毫秒)

  • 获取 packageInfo (IPC),创建一个WebView,设置它,请求loadUrl,检查权限 (IPC),解析 JSON,再次获取 packageInfo,通过 内省资源Resources#getIdentifier,获取 activityInfo …

performance android admob

8
推荐指数
0
解决办法
541
查看次数

当名义类需要访问修改时,无法使用交集类型

接口:

interface PublicCloneable {
    Object clone();
}

interface HasPosition {
    // doesn't matter
}
Run Code Online (Sandbox Code Playgroud)

尝试使用交集类型:

@SuppressWarnings("unchecked")
<E extends PublicCloneable & HasPosition> E cloneAndIncrementPosition(E elem) {
    final E clone = (E)elem.clone();
    // rest omitted
}
Run Code Online (Sandbox Code Playgroud)

尝试编译javac 1.8.0_60:

$ javac xx.java
xx.java:13: error: clone() in Object cannot implement clone() in PublicCloneable
    <E extends PublicCloneable & HasPosition> E cloneAndIncrementPosition(E elem) {
     ^
  attempting to assign weaker access privileges; was public
xx.java:14: error: clone() has protected access in Object
        final E clone …
Run Code Online (Sandbox Code Playgroud)

java javac

6
推荐指数
1
解决办法
261
查看次数

标签 统计

admob ×1

android ×1

java ×1

javac ×1

performance ×1