自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

csdn_aiyang的博客

业精于勤荒于嬉,行成于思毁于随。

原创 Android 性能优化(四)Crash治理之路——AndroidCrashX开源库

前言 Crash率是衡量一个App好坏的重要指标之一。如果你忽略了它的存在,它就会得寸进尺,愈演愈烈,最后造成大量用户的流失,进而给公司带来无法估量的损失。 上一篇(Android 性能优化(三)认识异常Exception和错误Error)讲到造成Crash的原因却有很多,比如:运行时异常的空...

2020-03-23 19:25:15 475 0

原创 数据结构与算法——从零开始学习(一)基础概念篇

前言 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合用计算机存储、组织数据的方式。数据结构分别为逻辑结构、(存储)物理结构和数据的运算三个部分。 为什么要学数据结构? 首先,因为数据结构作为计算机专业的专业基础课程,是计算机考研的必考科目之一,如果打算报考计算机专业的研究生...

2018-12-06 18:47:42 108879 11

原创 Android 主题Theme样式一键换肤,非常简单(附小案例)

导语 谷歌v7后的主题Theme其实就有意给开发者们开辟换肤的功能,我们一起手动制作一款可以换肤主题,开始撸码吧! 一、统一自定义属性名 attr.xml <?xml version="1.0" encoding="utf-8"...

2017-10-31 10:55:16 5140 1

原创 23种开发设计模式总结,追求高内聚低耦合的编程思想。

目录 一、概述 二、7个设计原则 1、单一职责原则 ( SRP ) 2、开闭原则 ( OCP ) 3、里氏替换原则 ( LSP ) 4、依赖倒置原则 ( DIP ) 5、接口隔离原则 ( ISP ) 6、最少知道原则(迪米特原则) 7、合成/聚合复用(CARP) 三、创建型模式...

2017-06-13 14:32:39 14342 0

原创 Android 适配语言、屏幕、图片、横竖屏、版本

目录 一、适配国家语言 (1)手机系统语言适配 (2)应用切换语言 二、屏幕适配 (1)图片适配 (2)、XML布局适配 (3)、横竖屏适配 三、适配不同系统版本 前言 智能手机的用户分布在不同国家,且偏好各异,这就要求开发阶段兼容适配;由于各厂家生产出的安卓设备分别率不同、...

2017-03-28 19:02:12 2158 0

原创 Android 性能优化(五)Crash治理之OOM,内存泄漏检测工具

系列推荐: Android性能优化(一)闪退治理、卡顿优化、耗电优化、APK瘦身 Android 性能优化(二)Handler运行机制原理,源码分析 Android 性能优化(三)认识错误Error和异常Exception及栈轨迹StackTrace Android 性能优化(四)Cras...

2020-04-03 19:26:08 343 0

原创 Android View绘制及事件(一)屏幕的视图层级,窗口概念初识

系列推荐: Android View绘制及事件(二)setContentView()源码,LayoutInflater加载View的过程 Android View绘制及事件(三)自定义View及View绘制流程 Android View绘制及事件(四)自定义组合控件+约束布局Constrai...

2020-04-03 16:15:48 220 0

原创 Android 性能优化(三)认识错误Error和异常Exception及栈轨迹StackTrace

前言 Android 性能优化之内存检测、卡顿优化、耗电优化、APK瘦身,这篇中我强调“运行稳定大于一切”,保证程序运行中不出现Crash,要比卡顿、耗电、安装包大小等方面更为重要。 造成Crash的原因有很多,而在程序运行过程中抛出了异常或错误就是其中最普遍的成因。本篇将对Exceptio...

2020-03-19 16:48:46 283 0

原创 Android 性能优化(二)Handler运行机制原理,源码分析
原力计划

目录 前言 一、Looper轮询器 二、Handler处理者 三、MessageQueue消息队列 四、Message消息载体 五、小结 面试题: 前言 我们知道,主线程中不建议耗时操作,子线程中不允许更新UI,此时就需要Handler机制来保证线程安全,Handle运行依赖于...

2020-03-12 12:21:18 352 0

原创 2019年,个人年终总结

《个人2019年总结》 1、再见,2019 已经过去的2019年,对于平凡的我来说,就是一个平凡的一年,也没做出什么大的成绩,没有大起大落,没有大喜大悲。 就这样,此时我坐在电脑前开始发呆,回想这一年过往,记忆碎片时而闪过,零稀记得一些值得纪念的事情,于是便写下来总结一下。 ...

2020-01-20 16:49:50 3855 0

原创 Android 浅谈模块化、组件化、插件化、热修复的简单理解

目录 前言 一、模块化 二、组件化 1、概念 2、使用 3、版本管理 4、模块间跳转 5、资源命名问题 三、插件化 四、热修复 1、概述 2、流派 3、原理 五、总结 前言 谈到热修复相信大家应该比较熟悉,因为它是目前比较重要的技术,平常面试中也是被问的比较多。插...

2019-12-27 17:31:49 2029 4

原创 小知识:浅谈二维码的生成和识别原理

目录 前言 条形码 静态二维码 二进制生成图形码 二维码的定位 前言 不知不觉中,我们的生活到处充满了二维码。登录账户需要二维码;加好友需要二维码;共享单车需要二维码;商品包装上也有二维码;甚至连楼下卖水果的阿姨手里都拿张二维码收款。那么,有没有想过这个二维码到底是什么东西呢?那么...

2019-12-26 15:14:15 8690 3

原创 Android 快捷键生成onClick()点击事件方法

目录 首先,在xml中: 然后,将光标移到myOnclick上 最后,创建事件处理的方法 我们知道, 一般在xml中可以设置button控件的点击事件处理的方法,可以在onClick属性的设置值,这个值对应的是加载此xml布局所在的Activity里面的一个方法名。 这里其实有一个快捷...

2019-12-10 18:01:59 877 0

转载 RecycleView 列表项滑动到指定位置或顶部、Adapter局部刷新

概述 相信大家在项目中使用RecyclerView时,经常会遇到这样的需求:将RecyclerView滑动到指定位置,或者检索RecyclerView的某一项(各个项的高度不确定),然后定位滚动这到一项,将它显示。一般我们会用scrollBy、scrollToPosition、smoothSc...

2019-11-28 11:58:14 827 0

原创 Flutter 异步函数 Stream 及 BloC使用详解

概念 Stream是用于接收异步事件数据的异步函数,它们在一些耗时操作之后返回数据,比如像 IO操作。Stream可以接收多个Future异步操作的结果(成功或失败)。另外,Stream 可以被订阅Subscription、StreamController进行管理。 BLoC是Google团...

2019-11-19 17:43:06 1013 0

原创 Flutter_Webview_Plugin插件使用及异常处理

GitHub项目地址,欢迎star: https://github.com/aiyangtianci/flutter_app 目录 介绍 插件地址 使用方式 异常 介绍 官网定义:Plugin that allows F...

2019-10-31 12:45:47 2339 0

原创 Flutter 安装部署与认识Dart语言

本人尝试些的Flutter练习项目,非常适合入门,下面是GitHub地址,欢迎star: https://github.com/aiyangtianci/flutter_app 一、Flutter 安装部署 Flutter ...

2019-10-24 15:43:44 288 0

转载 Java 每日算法,三个线程按顺序打印

关于多线程的基础知识,可点击下面链接进行学习。 JAVA\Android 多线程实现方式及并发与同步 题目1 启动3个线程A、B、C,使A打印0,然后B打印1,然后C打印2,A打印3,B打印4,C打印5,依次类推。 public class PrintSequenceThread...

2019-09-26 19:00:01 2685 4

原创 Java 算法,去掉重复字母重组新的字符串

前言 您作为一名优秀的工程师,娴熟操作和使用字符串的技能自然是必须的。对于字符串的操作,常用的就是trim()去除前后空格、subString()截取子字符串,其他方法平常用的不多。下表中是字符串常用的方法。大家要记一记啊,特别是chartAt()方法比较重要的,面试算法中常用到。 ...

2019-09-02 15:45:29 505 2

原创 Android 应用进程保活APP常驻内存研究方案

前言 遥想当年,博主铭记在心的一件事,就是曾做过让我加快秃顶的功能——健步活动。我们知道,在Android4.4之后的版本中,Android在硬件中支持内置计步传感器,例如微信运动等软件都是调用了Android中的Sensor.TYPE_STEP_COUNTER传感器服务,从而获取到每日的步数...

2019-08-28 18:36:57 2287 2

转载 JAVA OutputStreamWriter转换流,蓝牙打印小票

之前项目需要做打印小票的功能,实现上采用蓝牙连接打印机,蓝牙在上一篇已经介绍了,只是查找与连接的API调用。主要难点是通过OutPutStreamWriter进行小票的排版然后写入到打印机进行打印。因此,本篇主要讲解的也就是转换流OutputStreamWriter。 我们知道,在序列化存储文件...

2019-08-27 16:58:29 442 0

原创 Android 图片框架原理——Glide源码分析

目录 前言 一、With() 二、load() 三、into() 1、buildImageViewTarget() 2、关注1:buildRequest 构建 3、关注2:runRequest 执行 总结 补充,Glide缓存机制: 前言 作用Android开发者,相信大家...

2019-08-23 16:26:55 1767 2

原创 Android 使用HardwareAccelerated硬件加速总结

从Android3.0(API Level 11)开始支持硬件加速,在Target API >= 14时是默认开启的。可充分利用GPU的特性,使得界面渲染更加平滑,但是会消耗更多内存RAM。硬件加速自身并非完美,在某些Android 5的rom上,由于内存RAM分配的问题,如果代码不当,会引...

2019-08-15 15:48:47 746 1

原创 Android 自定义RecyclerView.OnScrollListener,实现上拉分页加载、下拉刷新监听

Android 使用RecycleView实现吸附小标题的Demo(附源码) Android 探究onCreateViewHolder和onBindViewHolder两者关系和调用次数 前言 上面两篇讲解了RecycleView创建和绑定子项的认识,特别是Recycleview的进行自定...

2019-07-31 19:21:57 1157 0

原创 Java 集合List、Set、Map知识结构大全详解

目录 概述 一、Collection 接口 (1)List列表 —— 有序、值可重复 (2)Set 集 —— 值不可重复 二、Map 接口 (1)HashMap —— 无序 1、取模法 2、Hash碰撞冲突 3、解决Hash冲突 (2)HashTable —— 无序 (3)T...

2019-07-17 16:37:51 5294 4

原创 Android View绘制及事件(四)自定义组合控件+约束布局ConstraintLayout+自定义控件属性

前言 上一章《Android 自定义View前世今生,View绘制流程》介绍了自定义View的实现方式大致有三种:自定义组合控件、继承系统控件(如TextView、ImageView等)、继承View或ViewGroup。这章专门学习自定义组合控件实现方式,将多个控件组合成为一个新的控件,能够...

2019-06-28 19:17:24 2523 0

转载 工信部统一 Android 消息推送标准

目录 一、介绍 二、推送技术发展 1、轮询方式 2、SMS短信推送方式 3、长连接推送方式 三、统一推送 四、作用 五、具体时间表 一、介绍 统一推送联盟成立于2017年10月,挂靠单位是电信终端产业协会(TAF),接受工业和信息化部业务指导,住所设在北京。联盟核心任务是:探索...

2019-06-25 14:54:45 1965 0

转载 Android Studio运行Java main()方法

目录 前言 第一步 第二步 第三步 最后一步 前言 在Android Studio开发工具上进行编程,有时候需要练习一些算法,就得反复运行模拟器,进行debug调试或打日志查看数据信息。其实,选择走类似Eclipse运行Main方法入口输出日志会更方便。下面一起来看一下用法: ...

2019-06-20 16:43:59 1182 1

原创 Android View绘制及事件(三)自定义View及View绘制流程

前言 一、自定义View介绍 二、View绘制流程 2.1Measure() 2.2 Layout() 2.2 Draw() 注意 前言 我们经常使用TextView、button等控件,但是有些同学对于它们是如何显示和扩展的却并不那么熟悉。而这一块的知识也进阶高手必备的,写这一...

2019-06-14 12:10:50 540 1

原创 Android 应用启动时出现黑白屏问题分析及解决办法

目录 前言 一、案件重演 二、原因分析 三、解决方案 前言 在日常Android项目开发工作中,我们经常会遇到一种小情况,就是点击应用桌面图标后会出现片刻的黑屏效果。虽然这种情况并不是一个bug,也不是人为造成的结果,但这样总归会觉得是我们的应用启动缓慢和运行卡顿。当用户觉得这款应用不...

2019-05-30 17:28:33 739 0

原创 Android View绘制及事件(五)View响应事件及分发过程源码详解

目录 前言 一、MotionEvent类 二、事件传递对象的顺序 三、事件传递过程的方法 四、源码分析 前言 记得有人这样过说:View的事件传递和分发是个看起来简单、学起来也不难、讲起来却憋死个人、用起来又需要充实的知识和编程经验。没错,事件分发机制确实就只有几个函数而已,看...

2019-05-09 18:22:59 414 0

转载 Android 不同机型白名单如何设置,小米、华为、oppo、乐视

前言 什么是白名单?白名单是对手机中安装运行的应用的允许耗电的一种管理模式。一般手机对应用的管理包括应用后台运行联网、定位、传感器使用或CPU占用的限制。应用加入白名单,就意味着手机不对其采取任何限制措施。与白名单模式相对的一种是省电模式。由于每款手机型号不同,白名单设置位置不一样,以下选取不同...

2019-04-12 18:48:27 3940 0

原创 Android 启动模式及singleTask与Home键存在的问题

目录 一、前言 二、查看Log日志过程 三、问题分析(标红要注意) 四、原理分析 五、解决方式 一、前言 在项目设计中,经常用到点击“退出”,需要清除掉所有Activity,跳转到登录页面。所有采用Android的启动模式。 standard标准模式,也是activity的默认启动...

2019-03-20 18:31:52 2004 0

转载 Android 9.0刘海屏适配方案

原文链接:https://www.jianshu.com/p/c9e710a9fa35 网上关于刘海屏适配的文章不少,可讲清楚的却没几篇,大多是拷贝文档、长篇大论,甚至热情的贴图告诉你什么是刘海屏,到最后你仍不确定到底是怎样的一个适配方案,才能让你的 app 真正的适配所有的刘海屏机型。 看到...

2019-03-15 11:22:51 1119 0

原创 Java |与|| 、&与&& ,或与非的使用和区别

目录 前言 一、“与”和“或”的定义区别 二、&、&&使用和区别 三、|、||的使用和区别 前言 在平时的开发工作当中,经常会使用到if判断,当满足某一个或多个条件下就可以继续往下执行。在java中是使用|、||(或) 、&、&&(与)的...

2019-03-07 13:25:40 13486 0

原创 JAVA JSON格式数据JSONObject的使用及List与数组相互转换

前言 在服务器与web前端、移动端进行数据交互的时候的时候,通常会调用接口url把数据以JSON数据格式传过去进行显示,因此,JSON数据格式在前后端数据交互时会经常用到。 目录 前言 什么是JSON? 标准的JSON数据表示: 对象数据结构--Object 数据结构--Array ...

2019-03-04 15:05:45 5682 0

原创 Android View绘制及事件(二)setContentView()源码,LayoutInflater加载View的过程

前言 通常情况下,我们创建一个Activity时,会通过setContentView来引入布局,将界面视图展现给用户看见。那么,为什么通过setContentView()就能将xml格式的布局文件加载到界面中呢? @Override protected void onCreate(Bun...

2019-01-24 18:24:36 540 0

原创 Android 5.0、6.0、7.0、8.0、9.0 新特性,DownloadManager踩坑记

目录 一、5.0新特性 二、6.0新特性 三、7.0新特性 四、8.0新特性 五、9.0新特性 六、 一步步跟着案例进行版本升级踩坑——DownloadManager 1、适配6.0 动态权限 2、适配Android 7.0 解析包时出现问题 3、适配Android 8.0:未知...

2019-01-09 16:37:25 8562 12

转载 2018年博客之星评选,需要您宝贵的一票!非常感谢!

我正在参加CSDN 2018年博客之星评选,希望大家能投我一票,我在NO.108。 感谢大家宝贵的一票,投票地址: https://bss.csdn.net/m/topic/blog_star2018/index 下边这个 是我哦! ...

2019-01-03 15:30:02 396 0

原创 数据结构与算法——从零开始学习(六)图

  系列文章 第一章:基础知识 第二章:线性表 第三章:栈和队列  第四章:字符串和数组 第五章:树和二叉树 第六章 图 第一节 基本概念 1.1 定义和术语 1.2 基本操作   第二节 存储结构 2.1 邻接矩阵 2.2 邻接表 第3节 图的遍历 3.1 深度优...

2018-12-17 19:23:58 6420 0

提示
确定要删除当前文章?
取消 删除