Android
文章平均质量分 76
鱼包子Ray
万丈高楼平地起
展开
-
Android移动架构汇总
移动架构01_UML用例图移动架构02_UML类图移动架构03_UML时序图移动架构04_设计模式一:工厂模式移动架构5_PowerDesigner新建时序图移动架构06_设计模式二:抽象工厂模式移动架构07_原型模式移动架构08_单例模式移动架构09_Activity的启动流程分析移动架构10_面向切面设计AOP移动架构11_建造者模式移动架构12_责任链模式移动架构13...原创 2020-01-06 16:46:32 · 1333 阅读 · 1 评论 -
Android性能优化汇总
性能优化的目的:1 优化现有的项目,使其运行更加流畅2 后期开发的项目从一开始就避免产生性能问题原创 2020-01-07 19:33:08 · 1151 阅读 · 2 评论 -
DailyWorkSummary
01_2018April01_自定义控件实现圆角阴影效果02_2018April02_TextView实现部分点击+不同字体颜色03_2018April03_Android网络加载PDF文件04_2018May01_ListView实现横向滚动05_2018May02_柱状图06_DailyWork02_ViewPager中Fragment实现懒加载07_2018June01_自定义开...原创 2019-07-15 10:38:20 · 371 阅读 · 0 评论 -
Android汇总
基础、日常效果、架构、性能优化原创 2020-01-20 10:58:15 · 531 阅读 · 0 评论 -
Bitmap设置圆角(任意角)
public class BitmapFillet { public static final int CORNER_NONE = 0; public static final int CORNER_TOP_LEFT = 1; public static final int CORNER_TOP_RIGHT = 1 public static fi转载 2017-08-24 17:52:22 · 3404 阅读 · 0 评论 -
数据存储(三):SharedPreferences
#1 简介: 开发软件的时候,常需要向用户提供软件参数设置功能,例如设置页面刷新的次数,保存用户名,如果是在window下通常我们会采用ini文件进行保存.如果是J2EE下面,我们会采用properties属性文件或者xml进行保存.Android平台给我们提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于原创 2015-10-10 10:31:25 · 554 阅读 · 0 评论 -
Exception_ java.io.EOFException
在使用HttpURLConnection下载文件时,报异常: downloadFile catch Exception: java.io.EOFException at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:202) at java.util.zip.GZIPInputStream.(GZIPInp...原创 2017-12-26 09:24:26 · 313 阅读 · 0 评论 -
移动架构21_动画框架源码分析
一、 初始化:ofFloat(imageView,"scaleX",of,1f)动画几个启动元素的封装:控件、动画属性描述(平移还是缩放、x方向还是y方向)、过程(起始、过程、终止);它只是做了动画关键帧(KeyFrameSet)的解析(1)ObjectAnimator(extends ValueAnimator ):ofFloatpublic stat原创 2017-10-18 21:35:41 · 428 阅读 · 0 评论 -
移动架构02_UML类图
Android移动架构汇总在UML类图中,常见的有以下几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)1.泛化泛化关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,既有老...原创 2017-09-24 13:38:32 · 348 阅读 · 0 评论 -
移动架构22_迭代器模式
一、定义:提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示二、优点 简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游标来取得,但用户需要在对集合了解很清楚的前提下,自行遍历对象,但是对于hash表来说,用户遍历起来就比较麻烦了。而引入了迭代器方法后,用户用起来就简单的多了。 可以提供原创 2017-10-17 20:18:27 · 254 阅读 · 0 评论 -
移动架构17_观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己原创 2017-10-08 22:27:40 · 306 阅读 · 0 评论 -
移动架构27_设计模式六大原则六: 迪米特法则
最少知识原则, 一个对象应该对其它对象有最少的了解, 即一个类对自己需要耦合或者调用的类知道的最少;原创 2017-10-21 21:36:10 · 560 阅读 · 0 评论 -
移动架构30_面向对象式手写数据库架构设计二(修改、删除、查询、拓展)
Demo地址: https://gitee.com/YuBaoZi/codes/nujo5r0xsvdyte9pq7lha77 建议:代码很简单,建议敲两边就能理解了,很实用;一、说明前一篇讲到了框架的搭建和增加数据(移动架构29_向对象式手写数据库架构设计一(基本框架与插入数据)),本篇文章将说明如何修改、删除和查询数据;通过这些操作,充分表现架构的简单性、易拓展;相比常见的框架orm原创 2017-10-30 21:11:22 · 704 阅读 · 0 评论 -
移动架构47_视图绑定组件ViewBinding
Google推荐使用ViewBinding来代替大量重复的findViewById原创 2023-04-27 15:16:50 · 662 阅读 · 0 评论 -
移动架构18_ListView源码分析
一、观察者模式在ListView中的运用观察者模式(建议先熟悉观察者模式的角色定义和调用流程)BaseAdapter是被观察者,ListView是观察者,被观察者一般有一个存储观察接口的集合,去源码中查找BaseAdapter中的这个集合://集合的封装private final DataSetObservable mDataSetObservable = new DataSet...原创 2017-10-11 22:32:41 · 304 阅读 · 0 评论 -
移动架构37_Glide架构简述
一、原理架构与普通的图片加载架构大致相同,具体的步骤,Glide实现更复杂,功能更强大全面,这里只对它的框架做简单介绍 正常图片加载框架类图: 普通的图片加载框架:移动架构36_图片加载框架二、注意点:在Fragment或Activity中,加载图片,Glide能够自动实现取消、暂停、恢复,如何实现的呢? Glide.with 将当前显示的页面对象传入Glide SupportReque原创 2017-12-26 09:38:33 · 463 阅读 · 0 评论 -
移动架构04_PowerDesigner新建时序图
1 打开powerdesigner,点击【文件】菜单,再选择【新建模型】 2 在【新建模型】界面,在【类型】中选择【应用】,在【类型项】中选择【UML序列图】,然后点击【OK】## (Categories-Application- UML Sequence Diagram) 生成的文件中会自动出现一个SequenceDiagram_1(时序图1),在该时序图中,画图(调整边界)原创 2018-01-08 17:09:04 · 5320 阅读 · 0 评论 -
移动架构29_面向对象式手写数据库架构设计一(基本框架与插入数据)
效果: 数据库查看工具:SqliteLookup一、需求:设计一个数据库框架,数据库的位置自定义,数据库中每张表的创建和表插入、修改数据逻辑要求能够统一二、原理分析:1、不用DataBaseOpenHelper,而用SQLiteDatabase.openOrCreateDatabase来创建数据库,指定一个数据库的位置2、每张表对应一个业务Bean,插入数据就是插入一个业务Bean;3、提供数原创 2017-10-26 22:28:44 · 564 阅读 · 0 评论 -
移动架构20_策略模式
一、定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式让算法独立于使它的客户独立而变化二、角色环境(Context)角色持有一个Strategy的引用抽象策略(Strategy)角色这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色 包装原创 2017-10-13 20:06:52 · 263 阅读 · 0 评论 -
移动架构06_设计模式一:工厂模式拓展(抽象工厂模式)
Android移动架构汇总抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。意图:提供一个创建一系列相关或相互依赖对象的接口,而...原创 2017-09-24 16:35:40 · 302 阅读 · 0 评论 -
移动架构23_设计模式六大原则一:单一职责原则
设计模式六大原则:单一原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则一、单一职责原则1、定义单一原则(SRP:Single responsibility principle)又称单一职责原则。它规定一个类应该只有一个发生变化的原因。通俗的说,即一个类只负责一项职责。问题由来:类T如果负责两个不同的职责:职责P1、职责P2。当由于职责P1需求发生改变而需要修原创 2017-10-04 16:44:09 · 544 阅读 · 0 评论 -
移动架构33_网络访问框架与数据库框架实现断点下载
想几行代码就解决问题的话,还是洗洗睡吧~要点: 掌握网络框架的搭建 掌握数据库框架的封装 掌握数据的下载 网络框架和数据库框架的联合封装使用一、实现数据库底层框架具体详解:移动架构29_面向对象式手写数据库架构设计一1、定义注解@Target(ElementType.TYPE)@Retention(RetentionPolic原创 2017-11-12 11:19:31 · 844 阅读 · 2 评论 -
移动架构03_UML时序图
Android移动架构汇总时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排序的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中的建模元素主要有:角色(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。角色(Actor)系统角色,可以是人、甚...原创 2017-09-24 14:18:27 · 617 阅读 · 0 评论 -
RxJava实现联想搜索(模糊搜索+定向搜索)
1. 需求场景2. API说明(1) debonuce仅在过了一段指定的时间还没发射数据时才发射一个数据,会过滤掉发射速率过快的数据项(2) Skip Observable’发射的前N项数据,只保留之后的数据。(3) switchMap 最新发射的最终显示(4)filter 只有通过测试的数据才会被发射(5)map:...原创 2018-03-29 14:16:21 · 3668 阅读 · 0 评论 -
移动架构25_设计模式六大原则四:接口隔离原则
接口隔离:建立单一的接口,功能尽量细化,不要建立臃肿的接口;原创 2017-10-21 21:25:06 · 465 阅读 · 0 评论 -
移动架构28_设计模式六大原二: 开闭原则
1、定义:软件的实体类, 模块, 函数应该对扩展开放, 对修改关闭; 即 软件实体应该通过扩展实现变化, 不是通过修改已有的代码实现变化;问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已原创 2017-10-21 21:40:09 · 448 阅读 · 0 评论 -
移动架构46_可观察的数据持有者类-LiveData
LiveData是一种可观察的数据存储器类,它具有生命周期感知能力,可确保LiveData仅更新处于活跃生命周期的应用组件观察者。原创 2023-04-14 14:28:49 · 588 阅读 · 0 评论 -
移动架构05_设计模式一:工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。原创 2017-09-24 16:34:07 · 312 阅读 · 0 评论 -
移动架构43_什么是Jetpack
什么是mvc,mvp,mvvm又是什么,安卓开发框架是如何演变的;jetpack包括什么原创 2023-03-02 17:44:34 · 574 阅读 · 0 评论 -
RxJava(RxAndroid)_Observable的创建
中文地址: https://mcxiaoke.gitbooks.io/rxdocs/content/operators/Creating-Observables.htmlObservable作为RxJava中使用的第一步就是创建它,以下是几种常见的创建方法对应版本的依赖: compile ‘io.reactivex.rxjava2:rxandroid:2.0.1’ compi...原创 2018-02-14 09:16:28 · 1622 阅读 · 0 评论 -
移动架构12_责任链模式
一、定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象形成一条链,并沿着这条链传递该请求,直到有对象处理它为止。二、使用场景多个对象能够处理同一请求,具体处理则在运行时动态确定在请求矗立者不明确的时候向多个对象提交同一个请求需要动态制定一组对象处理请求三、Demo1.请求抽取:public a原创 2017-10-05 21:51:01 · 1295 阅读 · 0 评论 -
移动架构35_数据库架构:数据库升级及分库实现多用户登陆
代码地址:https://gitee.com/YuBaoZi/AndroidShuJuKuFenKuYuQuanLiangGengXin一、原理:通常一个APP需要通过id登陆,app会保存一些信息,切换用户,显示和保存不同的用户信息; 我们会设计一套app的文件存储架构和用户登录体系来支持不同的业务需要,要求拓展性好,原理清晰简单;本文以实现多用户登陆为例,通过数据库分库和数据库全版本升级,来展原创 2017-11-21 16:03:49 · 1969 阅读 · 1 评论 -
移动架构34_Android中解析xml文件
在安卓中通常需要解析xml文件,获取想要的数据,例如:数据库升级时,对应不同版本有不同的sql语句,可以通过xml文件保存起来,那么如何在Android中解析xml文件呢?一、将xml文件转换为IO流xml文件assets/updateXml.xml:<updateXml> <createVersion version="V003"> <createDb name="user原创 2017-11-20 16:29:26 · 659 阅读 · 0 评论 -
移动架构01_UML用例图
Android移动架构汇总用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示一个外部用户能够观察到的系统功能模型图。用例图多用于静态建模阶段(主要是业务建模和需求建模),帮助开发团队以一种可视化的方式理解系统的功能需求。参与者(Actor)在系统外部与系统直接交互的人或事物;需要注意以下两点:1)参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的...原创 2017-09-24 11:18:48 · 505 阅读 · 0 评论 -
移动架构08_单例模式
Demo:http://download.csdn.net/download/baopengjian一、饿汉模式:第一步加载class文件就已经实例化了缺点:没有做到想用时才实例化public class SingleEasy {private static SingleEasy singleEasy = new SingleEasy();原创 2017-10-01 17:03:37 · 265 阅读 · 0 评论 -
移动架构32_自定义网络访问框架开发
AndroidStudio中:导入fastjson、httpclient 一、 需求:支持请求 JSON文本类型,音频,图片类型,批量下载。上传 请求各种 数据时,调用层不关心上传参数分装,如(request.addParamas(key,value)) 直接将参数分装成对象,传给框架 获取数据后 调用层不关心JSON数据解析 回调时 调用层只需要知道传入的JSON的对应的响应类。原创 2017-11-02 22:19:41 · 468 阅读 · 0 评论 -
移动架构31_责任链和模板模式封装连续请求
Demo地址: https://gitee.com/YuBaoZi/codes/krbjs78p96fa4cnwyqho176一、 需求处理链式请求 需求分析:通常我们会遇到这样的情况,先去判断一个逻辑(有可能是异步的),当结果为一种情况时,继续执行下一步,再去判断;直到最终,如: 获取用户手机号->获取用户资产信息->购买产品 原理:每一步处理,都有请求、处理通过、处理不通过的逻辑,只是具原创 2017-10-31 16:34:25 · 517 阅读 · 0 评论 -
移动架构15_解释器模式
一、介绍解释器是一种用的比较少的行为模式,其提供了一种解释语言的语法,或者表达式的方式。该模式定义了一个表达式的接口。二、重点:1、必须有一个抽象接口2、构建语法树三、应用场景:1、简单的语言需要解释执行而且可以将该语言中的语句表示一个抽象的语法树2、对于某个特定的领域出现的不断重复的问题,可以转换成一种语法规则原创 2017-10-08 21:31:20 · 275 阅读 · 0 评论 -
移动架构09_Activity的启动流程分析
用户在点击手机中App的图标时,到底做了那些呢?一个App启动(冷启动)就是启动一个main函数,那么这个main函数在哪里呢?是哪个类的main函数呢?如上图所示,第一次启动时会去加载.class文件;开启一个进程,这个进程包含方法区、堆区、栈区;在物理上就是包含这些的内存区域,这个进程是在ActivityThread中启动的,启动app实际就是启动ActivityThr原创 2017-10-04 15:18:41 · 414 阅读 · 0 评论 -
移动架构24_设计模式六大原则三:里氏替换原则
所有引用基类的地方必须能够透明地使用其子类的对象原创 2017-10-20 16:08:53 · 526 阅读 · 0 评论