![](https://img-blog.csdnimg.cn/20210413132835420.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
android
文章平均质量分 66
对安卓知识的梳理
less more
少则多,简则精
展开
-
Gradle版本与编译器版本对应关系
版权声明:本文为延成原创文章,转载请标明出处插件版本与所需的 Gradle 版本这是Android 官方开发文档详细的说明地址https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin...原创 2019-12-13 10:07:46 · 2483 阅读 · 0 评论 -
Android API等级、Android版本、发布日期 《一览表》
版权声明:本文为延成原创文章,转载请标明出处英文名API 等级Android版本首次发布日期Q2910.02019-09-04Pie289.02018-08-07Oreo278.12017-12-05Oreo268.02017-08-22Nougat257.1.12016-10-04Nougat247.0...原创 2020-01-09 17:02:46 · 853 阅读 · 0 评论 -
Android 新特性
5.0特性Material Design支持多种设备全新通知中心支持 64 位 ART 虚拟机电池续航改进全新“最近应用程序”安全性改进不同数据独立保存改进搜索支持蓝牙USB Audio、多人分享等开发中注意的地方:增加了很多新控件,如抽屉布局,菜单布局,卡片布局,列表布局新增RecyclerView,选项卡布局等可以在需要的时候随时拿来使用而不必再重新自定义控件了。官网介绍5.06.0特性动态权限管理系统层支持指纹识别APP 关联Android Pay电源管理原创 2021-05-18 13:04:32 · 197 阅读 · 0 评论 -
android关于内存优化
Bitmap OOMUI Review(视图检查)减少视图层级减少视图层级可以有效的减少内存消耗,因为视图是一个树形结构,每次刷新和渲染都会遍历一次。ViewStub标签此标签可以使UI在特殊情况下,直观效果类似于设置View的不可见性,但是其更大的意义在于被这个标签所包裹的Views在默认状态下不会占用任何内存空间。include标签可以通过这个标签直接加载外部的xml到当前结构中...原创 2020-01-10 22:16:47 · 164 阅读 · 0 评论 -
常见android中功能的区别
版权声明:本文为延成原创文章,转载请标明出处1.广播与服务的区别广播的周期很短,你不能在广播内做耗时操作,而服务却能。广播的作用是帮你传递一些通知,例如你写了一个开机广播,一旦手机开机,广播就发一则通知告诉手机(你写的程序),手机你写的程序,某个类,某句代码)启动服务,这个时候在服务里面可以做你想做的耗时操作,例如去请求服务器,加载数据。广播和服务的区别就是广播周期短,不能做耗时操作...原创 2020-01-10 21:14:52 · 196 阅读 · 0 评论 -
android 中主线程给子线程发消息
public class MainActivity extends Activity { private Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // TODO 主线程向子线程发一个消息 setContentView(R.layout.activity_main); new Thread(ne原创 2022-01-21 13:06:43 · 2183 阅读 · 0 评论 -
Android自定义控件
自定义控件的实现有三种方式,分别是:组合控件、自绘控件和继承控件。下面将分别对这三种方式进行介绍。1.组合控件组合控件,顾名思义就是将一些小的控件组合起来形成一个新的控件,这些小的控件多是系统自带的控件。比如很多应用中普遍使用的标题栏控件,其实用的就是组合控件,那么下面将通过实现一个简单的标题栏自定义控件来说说组合控件的用法。1、新建一个Android项目,创建自定义标题栏的布局文件title_bar.xml:<?xml version="1.0" encoding="utf-8"?>原创 2021-05-14 17:09:30 · 92 阅读 · 0 评论 -
ContentProvider
1.ContentProvider数据库在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据。不能将数据库设为WORLD_READABLE,每个数据库都只能创建它的包访问,这意味着只有由创建数据库的进程可访问它。如果需要在进程间传递数据,则可以使用AIDL/Binder或创建一个ContentProvider,但是不能跨越进程/包边界直接来使用数据库。一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content原创 2021-05-18 10:30:52 · 237 阅读 · 0 评论 -
BroadcastReceiver
广播1.案例-IP拨号器-静态注册2.案例-短信黑名单-静态注册3.广播的种类4.案例-监听手机网络状态-动态注册5.案例-监听开机启动-在广播中启动Activity-静态注册6.案例-监听屏幕的关闭和打开-动态注册7. 发送自定义广播7.1 发送无序广播7.2 发送有序广播原创 2017-11-05 21:09:41 · 316 阅读 · 0 评论 -
Service
Android官网Service介绍链接地址1.概念服务是看不到界面的,,就是一个没有界面的Activity, 并且长期在后台运行的一个组件.。2.为什么用服务?进程优先级, 回收时是从5~1, 从低到高Foreground process 前台进程Visible process 可视进程Service process 服务进程Background process 后台进程Empty process 空进程回收的优先级: 先回收空进程, 一个一个回收的, 当内存够用时, 不再回收空进原创 2021-05-17 15:21:02 · 247 阅读 · 0 评论 -
android 后台保活+心跳分析
后台保活之前用的比较多的方案: 1 个像素的 Activity,播放无声音频,双进程互相守护等。后台运行白名单从 Android 6.0 开始,系统为了省电增加了休眠模式,系统待机一段时间后,会杀死后台正在运行的进程。但系统会有一个后台运行白名单,白名单里的应用将不会受到影响,在原生系统下,通过「设置」 - 「电池」 - 「电池优化」 - 「未优化应用」,可以看到这个白名单。目前系统允许我们申请把应用加入白名单中,具体步骤为:首先,在 AndroidManifest.xml 文件中配置一下权限:原创 2021-05-19 13:24:04 · 1137 阅读 · 6 评论 -
Android 内存泄露
1.定义Android (或 JVM)的内存泄露:短⽣命周期的对象被⻓⽣命周期的对象持有,从⽽导致短⽣命周期的对象不能被释放2.垃圾回收机制垃圾回收机制分为「引⽤计数法」和「可达性分析法」:「引⽤计数法」 Python , Object-C , Swift⽤⼀个计数器记录⼀个对象被引⽤的次数,如果引⽤的次数被减少到 0 那么说明这个对象是垃圾 对象。都是引⽤计数(引⽤计数有循环引⽤的问题)「可达性分析法」 JavaJvm 通过⼀些 GC Roots 向下搜索,如果可以被 Gc Roots原创 2022-02-15 16:13:41 · 1393 阅读 · 0 评论 -
常见加密算法
1.不可逆的算法主要为MD5和SHA-1算法相同点:都是使用目前比较广泛的散列(Hash)函数,就是把任意长度的输入,变换成固定长度的输出,该输出就是散列值。计算的时候所有的数据都参与了运算,其中任何一个数据变化了都会导致计算出来的Hash值完全不同。不同点:MD5输出是128位的,SHA-1输出是160位的,MD5比SHA1运行速度快,SHA1比MD5强度高。MD5一般用于文件的校验,SHA-1主要使用于数字签名标准。MD5使用:public static String digest原创 2021-05-14 17:43:02 · 742 阅读 · 0 评论 -
Android事件分发机制
Android 事件分发机制详细讲解,推荐文章:https://www.jianshu.com/p/e99b5e8bd67b上图是对事件分发机制的详细描述1. 为什么会有事件分发机制安卓上面的View是树形结构的,View可能会重叠在一起,当点击的地方有多个View可以响应的时候,这个点击事件应该给谁呢?为了解决这个问题,就有了事件分发机制。PhoneWindow:是抽象类Window的实现类,抽象类Window是所有视图最顶层的容器,包括View视图的外观和行为都归Window管。Deco原创 2021-05-14 13:51:26 · 203 阅读 · 0 评论 -
Handler机制
1.为何引入Handler机制Handler是线程间通讯的机制,Android中,网络访问、文件处理等耗时操作必须放到子线程中去执行,否则将会造成ANR异常。ANR异常:Application Not Response 应用程序无响应产生ANR异常的原因:在主线程执行了耗时操作,对Activity来说,主线程阻塞5秒将造成ANR异常,对BroadcastReceiver来说,主线程阻塞10秒将会造成ANR异常。解决ANR异常的方法:耗时操作都在子线程中去执行但是,Android不允许在子线程去修原创 2021-05-13 10:14:47 · 4346 阅读 · 0 评论 -
activity的启动模式及应用场景
Activity的启动模式及应用场景1.standard2.singleTop3.singleTask4.singleInstance原创 2017-11-05 19:30:40 · 433 阅读 · 0 评论 -
Android多线程与双缓冲
Android中对View的更新有很多种方式,使用时要区分不同的应用场合。最要紧的是分清:多线程和双缓冲的使用情况。1.不使用多线程和双缓冲这种情况最简单了,一般只是希望在View发生改变时对UI进行重绘。你只需在Activity中显式地调用View对象中的invalidate()方法即可。系统会自动调用 View的onDraw()方法。2.使用多线程和不使用双缓冲这种情况需要开启新的线程,新开的线程就不好访问View对象了。强行访问的话会 报:android.view.ViewRoot$Call原创 2021-05-17 10:29:45 · 274 阅读 · 0 评论 -
productFlavors的使用
版权声明:本文为延成原创文章,转载请标明出处1.productFlavors在build中的配置:productFlavors { pro{ applicationId "com.xxx.xxx" versionCode 1 versionName "1.0.1" buildCo...原创 2020-04-27 11:24:28 · 745 阅读 · 0 评论 -
为什么要使用UTF-8?
UTF-8 是 UNICODE 的一种变长字符编码,即 RFC 3629。简单的说大字符集可以解决多种语言文本显示问题,从而实现应用国际化和本地化。对系统来讲,UTF-8 编码可以通过屏蔽位和移位操作快速读写,排序更加容易。UTF-8 是字节顺序无关的,它的字节顺序在所有系统中都是一样的。因此 UTF-8 具有更高的性能。UTF-8:常用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节(在unicode编码体系中,U+20000开始有5万多汉字..原创 2021-05-17 10:21:34 · 1708 阅读 · 0 评论 -
ImageView的ScaleType
版权声明:本文为延成原创文章,转载请标明出处 1.matrix从ImageView左上角开始直接显示,显示不全时,裁剪。2.fitXYImageView大小固定,图片适配ImageView,图片占满视图,当ImageView和图片宽高比不同时,导致图片拉伸。3.fitStart、fitCenter、fitEndImageView大小固定,图片适配ImageView,图片按照ImageView大小缩放或扩大,直到宽高一方或全和ImageView宽高相等,图片完全在ImageView内部.原创 2020-06-04 10:55:02 · 299 阅读 · 0 评论 -
Fresco用法详解
版权声明:本文为恩城原创文章,未经博主允许不得转载。如有问题请关注https://blog.csdn.net/AliEnCheng/article/details/82836073Fresco用法详解经过在实际项目中多次的使用,本人在这做了一下简单总结,希望对初次使用和正在使用的你们有所帮助。官方地址官方github地址:https://github.com/facebook/fres...原创 2019-01-09 10:12:35 · 2094 阅读 · 0 评论 -
避免viewPage只预加载左右两侧界面
版权声明:本文为延成原创文章,转载请标明出处方式一:设置提前预加载页面的数量viewPager.setOffscreenPageLimit(3);表示三个界面之间来回切换都不会重新加载方式二:只加载当前页,不进行预加载使用自定义ViewPager类LazyViewPager.class/* * Copyright (C) 2011 The Android Open Source ...原创 2020-02-18 16:41:41 · 417 阅读 · 2 评论 -
android动画一·简单了解使用
android 动画简单了解原创 2018-01-03 11:58:38 · 299 阅读 · 1 评论 -
android动画二·属性动画使用
##动画—属性动画###ValueAnimatorValueAnimator是整个属性动画机制当中最核心的一个类,实际开发中不常用,ValueAnimator中ofFloat(),ofInt(),ofObject()这三个方法常用* ValueAnimator只是对值进行了一个平滑的动画过渡 ValueAnimator anim = ValueAnimator.ofFloat(0...原创 2018-09-25 10:54:44 · 291 阅读 · 0 评论 -
android动画三·ValueAnimator和ObjectAnimator的高级用法
内容##动画###ValueAnimator的高级用法假如:我们有一个自定义的View,在这个View当中有一个Point对象用于管理坐标,然后在onDraw()方法当中就是根据这个Point对象的坐标值来进行绘制的。如果可以对Point对象进行动画操作,那么整个自定义View的动画效果就有了。TypeEvaluator是告诉动画系统如何从初始值过度到结束值。 public ...原创 2018-09-25 10:59:40 · 328 阅读 · 0 评论 -
android动画四·Interpolator和ViewPropertyAnimator的用法
##动画###Interpolator的用法使用属性动画时,系统默认的Interpolator其实就是一个先加速后减速的Interpolator,对应的实现类就是AccelerateDecelerateInterpolator。9种插值器:(系统默认的)AccelerateDecelerateInterpolator / 先加速再减速AccelerateInterpolato...原创 2018-09-25 11:03:11 · 218 阅读 · 0 评论 -
android动画五·属性动画进阶
1.ViewPropertyAnimator使⽤ View.animate() 创建对象,以及使⽤ViewPropertyAnimator.translationX() 等⽅法来设置动画;可以连续调⽤来设置多个动画;可以⽤ setDuration() 来设置持续时间;可以⽤ setStartDelay() 来设置开始延时;以及其他⼀些便捷⽅法。textview.animate().x(500).y(500).setDuration(5000) .setInterpol原创 2021-12-08 09:47:03 · 299 阅读 · 0 评论 -
android下载解析xml
android下载解析xm原创 2017-11-04 22:22:53 · 387 阅读 · 0 评论 -
HttpClient与HttpURLConnection的使用与区别
HttpClient与HttpURLConnection提交数据1.使用HttpClient提交数据(get/post)2.使用HttpURLConnection提交数据(get/post)3.HttpClient与HttpURLConnection区别原创 2017-11-04 20:20:59 · 361 阅读 · 0 评论 -
android多线程下载-HttpURLConnection
android多线程下载-HttpURLConnection原创 2017-11-04 21:35:12 · 248 阅读 · 0 评论 -
android多线程暂停下载-HttpURLConnection
android多线程暂停下载-HttpURLConnection原创 2017-11-04 21:35:53 · 700 阅读 · 0 评论 -
xUtils下载
xUtils下载原创 2017-11-04 21:37:39 · 443 阅读 · 0 评论