Android
文章平均质量分 80
Android海纳百川
这个作者很懒,什么都没留下…
展开
-
源码解析ViewGroup的onDraw为什么不一定会调用
网上有不少文章都说自定义ViewGroup的时候,如果需要自定义绘图,不能重写onDraw方法,而是要重写dispatch方法,因为ViewGroup绘制的时候不一定走onDraw方法,但是dispatchDraw方法是一定会走的。至于何时会走onDraw,何时不会走onDraw,有人说当ViewGroup设置背景的时候,会走onDraw方法,而没有背景的时候,不会走onDraw方法,这个说法也是有道理。切到本文的问题,为什么ViewGroup会不一定走onDraw方法呢,而非容器类的View为什么都会原创 2021-07-28 14:17:44 · 682 阅读 · 0 评论 -
Android 源码解析measure机制-深入浅出
Android 源码解析measure机制-深入浅出1、ViewRootImpl.performTraversals方法ViewRootImpl是最顶层控制一个Activity的UI显示的类,在View和WindowManager之间起一个中间管理的角色。该类的performTraversals方法里面会调用performMeasure、performLayout、performDraw三个方法,继而调用根布局DecorView的mersure、layout、draw方法,DecorView又会调用原创 2021-05-12 12:04:27 · 625 阅读 · 0 评论 -
Only fullscreen opaque activities can request orientation
Only fullscreen opaque activities can request orientation这个问题发生的必须同时满足三个条件:(1)你的Activity是透明的或者悬浮在另一个Activity上;(2)透明Activity限定了横竖屏方向,如下android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"(3)t原创 2021-04-27 19:21:06 · 848 阅读 · 0 评论 -
Program type already present: com.***.***.classA“的解决经验
AGPBI: {"kind":"error","text":"Program type already present: com.***.***.classA","sources":[{}],"tool":"D8"}的解决经验Android Studio在整合框架,导入第三方库的时候,会遇见各种各样的编译报错问题,根据我个人的经验,主要错误的原因是因为重复导入依赖包导致的,重复的可以是资源,也可以是类。重复导入报错的一般提示就是如本文标题中所写的“Program type already present原创 2020-11-19 15:11:40 · 1316 阅读 · 0 评论 -
android View的background何时加载的
android View的background何时加载的作为安卓开发者的我们,经常为view设置背景,而且大部分时候是在xml里面通过view的android:background属性进行设置的,或设置成一张图片,或设置成纯颜色。然后呢,我们也知道view的绘制流程要经过三大步:onMeasure,这是测量view的大小的;onLayout,这是确定view的位置的;onDraw,这是具体绘制view的。那么,这里抛出一个问题:backgound应该也属于view的具体呈现,是否是在onDraw里面原创 2020-08-24 10:44:18 · 794 阅读 · 0 评论 -
java.lang.SecurityException: Not allowed to change Do Not Disturb state
Not allowed to change Do Not Disturb state at android.os.Parcel.readException(Parcel.java:2013) at android.os.Parcel.readException(Parcel.java:1959) at android.media.IAudioService$Stub$Proxy.setStreamVolume(IAudioService.java:943)...原创 2020-05-16 22:34:44 · 5240 阅读 · 0 评论 -
Andorid Parcelable序列化遇见List、数组、Map如何处理
Andorid Parcelable序列化遇见List、数组、Map如何处理安卓开发中,如果遇见需要序列化的场景,我们一般都会把我们的Bean类实现Parcelable接口,如下:import android.os.Parcel;import android.os.Parcelable;public class Test implements Parcelable { pr...原创 2019-12-15 23:27:08 · 6787 阅读 · 2 评论 -
SparseArray源码解读
SparseArray源码解读google推荐使用SparseArray来代替HashMap,可见SparseArray应该有其优点,至于是什么优点,我们先来看看源码,就比较清楚了。一、构造方法SparseArray有两个构造方法,一个无参构造方法和一个有参构造方法,无参构造方法本质上还是调用了有参构造方法。public SparseArray() { this(...原创 2019-11-24 17:34:54 · 612 阅读 · 0 评论 -
Android使用https
HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在H...转载 2019-09-27 13:37:53 · 1268 阅读 · 0 评论