登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 231|回复: 5

Android开发中那些需要注意的坑,android app开发

[复制链接]

446

主题

811

帖子

2007

安币

手工艺人

发表于 2018-1-11 12:02:01 | 显示全部楼层 |阅读模式

        这个是看知乎的时候发现的一个问题,感觉挺有意思,就将自己遇到的坑记录下来。

        1、andorid l theme colorprimary 不能使用带有alpha的颜色值,否则会有异常抛出, 直接判断了是否alpha是否等于0或者255,其他都会异常

[Java] 查看源文件 复制代码
@override
protected void onapplythemeresource(resources.theme theme, int resid,
boolean first) {
if (mparent == null) {
super.onapplythemeresource(theme, resid, first);
} else {
try {
theme.setto(mparent.gettheme());
} catch (exception e) {
// empty
}
theme.applystyle(resid, false);
}

// get the primary color and update the taskdescription for this activity
if (theme != null) {
typedarray a = theme.obtainstyledattributes(com.android.internal.r.styleable.theme);
int colorprimary = a.getcolor(com.android.internal.r.styleable.theme_colorprimary, 0);
a.recycle();
if (colorprimary != 0) {
activitymanager.taskdescription v = new activitymanager.taskdescription(null, null,
colorprimary);
settaskdescription(v);
}
}
}

/**
* creates the taskdescription to the specified values.
*
* @param label a label and description of the current state of this task.
* @param icon an icon that represents the current state of this task.
* @param colorprimary a color to override the theme's primary color. this color must be opaque.
*/
public taskdescription(string label, bitmap icon, int colorprimary) {
if ((colorprimary != 0) && (color.alpha(colorprimary) != 255)) {
throw new runtimeexception("a taskdescription's primary color should be opaque");
}

mlabel = label;
micon = icon;
mcolorprimary = colorprimary;
}

        2、android 5.0花屏,由于过度绘制导致,关闭硬件加速, 尤其是使用webview后,可能会有大概率出现。

        3、华为手机被kill一系列问题

        用户可以设置某个应用是否后台保护,按照华为的功能说明,理解为,如果不保护,那锁屏后程序将无法保持运行,也就是进程可能被kill

        新安装应用后,华为会给出选项,是否保持,这个默认选项上存在问题,有的应用默认不允许,有的应用默认就允许。

        关于耗电高被kill问题。

        关于锁屏后网络被切断问题。锁屏就算保护,而网络或者socket也可能被主动切断。

        华为自己给出了bastet系统解决方案,具体不展开。
4、相同颜色值在全局是同一份,如果对其改变获取后的colordrawable值,会导致其它所有使用的地方都改变,可以采用mutable避免。 这个其实不能算作坑,是自己代码没有看仔细。

        5、华为p8手机,如果service与ui不在同一进程,service中监控网络的broadcastreciver 会收不到网络连接的广播,但是能收到断开的广播,这个应该也是华为自己的优化,但是ui中的连接与断开都能收到广播。

        6: android 在4.4后更新了webview内核,在5.0前在webview中,不用的域可以读取其它域设置的cookie,但是在5.0开始,系统默认值改为了false。这样会导致之前以前采用旧方法的不能获取到。(其实在我看来,确实不应该跨域来读取cookie,多不安全)

[Java] 查看源文件 复制代码
  if (build.version.sdk_int >= build.version_codes.lollipop) {
      cookiemanager.getinstance().setacceptthirdpartycookies(mwebview, true);
    }


0

主题

1万

帖子

2420

安币

Android大神

Rank: 6Rank: 6

发表于 2018-1-12 17:55:02 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:lol

0

主题

9224

帖子

2485

安币

Android大神

Rank: 6Rank: 6

发表于 2018-1-13 22:01:10 | 显示全部楼层
楼主威武,以后多发干货,多办活动~!

14

主题

9164

帖子

4746

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2018-1-14 13:30:47 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:lol

85

主题

9515

帖子

2208

安币

Android大神

Rank: 6Rank: 6

发表于 2018-1-15 03:16:24 | 显示全部楼层
感谢分享,楼主V5~

20

主题

8964

帖子

2365

安币

Android大神

Rank: 6Rank: 6

发表于 2018-1-15 16:01:30 | 显示全部楼层
每次我都积极回帖的,想要安币~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表