android知识点
文章平均质量分 81
朽木成才
金无足赤人无完人,不断修炼,方得圆满
展开
-
Activity启动模式中的生命周期
彻底明白Activity启动模式中的生命周期,从此不再成为面试难点。原创 2023-08-16 17:22:12 · 87 阅读 · 0 评论 -
Handler消息机制
}上边的代码,运行结果handler成功创建了,handler1出现了异常,说是没有Looper。只需要在添加一行代码就可以了。Looper.prepare()方法就是创建了一个Looper。//创建Looper Looper . prepare();上边代码可以看出当我们创建Handler的时候,如果没有取到Looper就会抛异常。那么Looper.prepare()又执行了啥呢,其实就是创建了一个Looper,保存在了sThreadLocal中。原创 2023-04-20 14:50:41 · 505 阅读 · 0 评论 -
View系列
掌握View核心知识体系,两大方向:View事件分发,自定义View。在讲View之前,先来从源码端了解一下类。首先我们知道android中的入口在ActiivtyThread中的mian函数开始。其中有个方法performLaunchActivity(),通过activity.attach创建PhoneWindow。再来看看PhoneWindow的源码:其中installDecor()这个方法中创建了DecorView以上分析可以总结为页面的创建:Activity->PhoneWindow->De原创 2023-04-18 16:11:47 · 485 阅读 · 0 评论 -
android知识体系汇总
对于一个程序员必须要经历的过程,初入职场你觉得能完成任务就行。第一阶段可称为搬运工阶段,你不需要了解原理,只要做出来就行。浑浑噩噩可能就5年光景了,你发现你做过很多项目,感觉什么都可以。第二阶段可称为眼高手低阶段,处于开发阶段。有一天你去面试,你觉得经验很丰富了,应该没什么问题,可面试官一连串的问题,让你哑口无言。第三阶段可称为觉醒阶段,人都是在被打击后挫败后,才会觉醒。于是开始往更高的方向进发,一切都要从源头说起,了解源码势在必行。原创 2023-04-18 09:55:26 · 598 阅读 · 0 评论 -
Bitmap详解
RGB色彩模式是工业界的一种颜色标准,是通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。对一种颜色进行编码的方法统称为“颜色空间”或“色域”。用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量。RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。原创 2023-04-16 14:48:50 · 2222 阅读 · 0 评论 -
android 媒体通知栏适配
做音乐播放器,必然要用到通知栏,由于通知栏很多版本都有改动,一些厂商也做了调整,适配起来比较麻烦,能用系统自带的就用。这里分享一下系统媒体通知栏的适配。需要考虑的问题如下:1,通知栏适配,音乐播放需要常驻,所以要维护一个通知栏。2,音控处理,在安卓7.0及以下,通过MediaSessionCompat可控制锁屏页音乐播放。3,对于耳机的处理,不管是线耳机还是蓝牙耳机,耳机控制播放暂停,下一曲上一曲等操作。4,打电话处理,在听音乐的同时如果电话进来后挂断,希望可以自动播放。原创 2023-03-29 09:53:27 · 2881 阅读 · 2 评论 -
Android隐私合规检测
随着国内渠道市场对APP规范越来越严格,在我们APP上线前需要做好隐私协议以及权限检查。由于项目中可能接入了第三方SDK,由于第三方SDK在初始化的时候可能会调用设备的隐私信息,因此检查合规非常的重要。一般情况下在用户使用APP的时候,只有选中了隐私协议之后,才能调取隐私信息。现在一些第三方SDK已经做了处理,比如:友盟SDK添加了预初始化,在预初始化的时候不会调取隐私信息。1,使用VirtualXposed在手机上装了一下虚拟系统,这里可以直接安装VirtualXposed.apk就可以https://原创 2022-06-01 18:36:44 · 3865 阅读 · 0 评论 -
正确的对待异常
前言越是简单,越容易忽略。编码一切应该从简单开始,简单点,编码的方式简单点,正确点,对待异常的方式正确点。一, JAVA异常类结构Java异常类结构: Java异常类结构如下图。基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,NullPointerException继承Runti...原创 2019-11-01 11:41:43 · 209 阅读 · 0 评论 -
Android so库兼容问题
一, 现有的CPU架构类型开发Android应用时,有时候Java层的编码不能满足实现需求,就需要到C/C++实现后生成SO文件,再用System.loadLibrary()加载进行调用,这里成为JNI层的实现。常见的场景如:加解密算法,音视频编解码等。在生成SO文件时,需要考虑适配市面上不同手机CPU架构,而生成支持不同平台的SO文件进行兼容。目前Android共支持七种不同类型的CPU架构...原创 2019-09-07 18:27:39 · 943 阅读 · 0 评论 -
ConstraintLayout 全解析
作者:xfhy链接:https://juejin.im/post/5c0bd6b05188257c3045dc50一、Relative positioning先来看看下面一段简单示例:<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/an...转载 2019-03-21 17:06:19 · 316 阅读 · 0 评论 -
android开发中的问题总结
一,java.lang.NoClassDefFoundError: okhttp3.OkHttpClient异常。1,原创 2019-03-19 16:19:46 · 662 阅读 · 0 评论 -
Android内存抖动
在Java内存管理机制中内存抖动会引起频繁的GC,从而使UI线程被频繁阻塞。内存抖动是由于短时间内有大量对象进出Young Generiation区导致的。原创 2019-01-16 21:21:18 · 473 阅读 · 0 评论 -
Android性能优化大全
在Android开发中,我们经常会遇到一些偶发问题,比如:无响应,应用退出,卡顿等。这些问题我们可以通过日志追踪,当然尽可能不让出现此类问题,这就需要在开发中及时发现和优化有风险的代码。除了利用一些工具检查以外,还要对代码质量有所提高,因此性能优化不是一朝一夕的事。本文主要对绘制,内存,稳定性以及安装包方面进行优化讲解,参考了一些博文和书籍,整理如下。原创 2017-07-04 15:27:11 · 7392 阅读 · 0 评论 -
今日头条屏幕适配方案
一,如何使用今日头条适配方案①,全局使用,作用于整个项目,当然也可以只作用于局部,如:activity。其中width怎么得来的,下文讲解public class MyApplication extends Application { private float width;//设计图屏幕宽度 单位dp @Override public void onCreat...原创 2018-08-28 13:45:44 · 20672 阅读 · 0 评论 -
Android Gradle这一篇就够
一,默认配置1,defaultConfig是Android对象中默认配置,它是一个ProductFlavor。默认配置有包名,版本号,版本名称等信息android{ compileSdkVersion 23 buildToolsVersion &amp;amp;quot;23.0.1&amp;amp;quot; defaultConfig{ applicationId &amp;amp;quot;c原创 2018-09-19 21:26:10 · 14728 阅读 · 0 评论 -
Android移动悬浮窗
一,WindowManager详解1,想要实现悬浮窗,只需要几行代码就能搞定。这段代码就是把一个按钮添加到屏幕坐标为(100,100)的位置。public class MainActivity extends AppCompatActivity { private Button mButton; private WindowManager.LayoutParams mLayou...原创 2018-11-09 17:19:10 · 832 阅读 · 0 评论 -
画虚线无效问题
画虚线无效问题原创 2018-12-20 17:14:50 · 681 阅读 · 0 评论 -
android.content.res.Resources$NotFoundException: Resource ID #0x23ecb2
在平时开发中肯定会遇到android.content.res.Resources$NotFoundException资源找不到的问题,最常见的就是setText()传入了一个int类型的数据,遇到这种问题很好解决,把int类型数据换成string就行了,原因太简单了不再解释。但是在开发中我遇到了另外一种现象,我们一起来分析一下采坑之路。一,需求1,项目中有个需求是在执行某个环节的时候播放一个短...原创 2018-12-24 15:52:32 · 2280 阅读 · 1 评论 -
Android短音频播放
在项目开发过程中,如果需要播放音频,我们通常会用MediaPlayer。但是MediaPlayer用起来并不是很方便,使用中也会遇到一些问题。对于一些短音频,比如一些提示音,像这种短音频我们可以使用SoundPool。一,SoundPool基本介绍1,创建SoundPool实例SoundPool(int maxStream, int streamType, int srcQuality)...原创 2018-12-24 21:51:51 · 1173 阅读 · 0 评论 -
Android anr问题总结
ANR即Application Not Responding应用无响应,一般在ANR的时候会弹出一个应用无响应对话框。也许有些开发者在使用某些手机开发中不在弹出应用无响应弹出框,特别是国产手机Android4.0以上的系统中,即使在开发者选项中设置了“显示所有应用无响应-为后台应用显示无响应ANR对话框”,主要是因为在某些国产手机系统中就将该选项屏蔽了,应用超过了一定时间无响应也不会弹出ANR对话...转载 2019-01-15 15:07:26 · 451 阅读 · 0 评论 -
Android屏幕适配
由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,修改成他们想要的样子。因此安卓的碎片化越来越严重,相信做过大型商业项目的同学对适配并不陌生。比如像电商这样的平台,用户群体多,范围广,我们不得不考虑适配各种机型。安卓屏幕适配对我们开发人员来说是很重要的,如果进行安卓屏幕适配屏幕尺寸和像素密度1,屏幕尺寸 屏幕尺寸就是对角线开平方,比如:4.7英寸原创 2017-06-24 16:48:16 · 343 阅读 · 0 评论