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

 更新时间:2016年04月19日 14:54:58   作者:xueshanhaizi  
这篇文章主要介绍了Android开发过程中那些需要注意的坑,有一些是自己遇到的,特分享给大家,需要的朋友可以参考下

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

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

@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,多不安全)

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
    }

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • Android自定义视图中图片的处理

    Android自定义视图中图片的处理

    Android系统提供了ImageView显示普通的静态图片,也提供了AnimationDrawable来开发逐帧动画,还可通过Animation对普通图片使用补间动画。图形、图像处理不仅对Android系统的应用界面非常重要,而且Android系统上的益智类游戏、2D游戏都需要大量的图形、图像处理
    2022-07-07
  • Android自定义View实现带音效和震动的SeekBar

    Android自定义View实现带音效和震动的SeekBar

    这篇文章主要为大家详细介绍了Android如何自定义View实一个带音效和震动的SeekBar,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Android仿荷包APP启动动画

    Android仿荷包APP启动动画

    这篇文章主要为大家详细介绍了Android仿荷包APP启动动画的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android开发实例之多点触控程序

    Android开发实例之多点触控程序

    本文主要介绍 Android开发多点触控,这里提供了详细的资料和示例代码,以及实现效果图,有开发Android应用需要这样的功能的小伙伴可以参考下
    2016-08-08
  • 解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题

    解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题

    这篇文章主要介绍了Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据

    ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据

    之前写的绑定数据是只是简单的绑定了字符串,这次我们将一次绑定多条数据并且尝试用自定义的布局。在这篇文章中首先讲解的是用Hashmap 去绑定数据,第二个例子,讲解自定义布局然后绑定数据
    2013-06-06
  • 微信小程序 canvas开发实例及注意事项

    微信小程序 canvas开发实例及注意事项

    这篇文章主要介绍了微信小程序 wxcanvas开发实例及注意事项的相关资料,这里对微信canvas与H5中的canvas做对比,并说明注意事项,需要的朋友可以参考下
    2016-12-12
  • java实现静默安装apk

    java实现静默安装apk

    本文给大家分享的是如何实现偷偷的把一个安卓apk应用安装到手机上,而且不显示确认框,主要是通过反射来实现,好了,小伙伴们仔细看下代码吧,有需要的小伙伴可以参考下。
    2015-04-04
  • Android开发手册Chip监听及ChipGroup监听

    Android开发手册Chip监听及ChipGroup监听

    这篇文章主要为大家介绍了Android开发手册Chip监听及ChipGroup监听,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Android发送GET与POST请求的DEMO详解

    Android发送GET与POST请求的DEMO详解

    本篇文章是对Android发送GET与POST请求的DEMO进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论