Android进阶
文章平均质量分 96
vanpersie_9987
这个作者很懒,什么都没留下…
展开
-
Android设计模式-状态模式
状态模式介绍状态模式中的行为由状态决定,不同的状态下有不同的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的和本质完全不同。状态模式是平行的、不可替换的。用一句话表述,策略模式是彼此独立、可替换的。一句话描述就是,状态模式把对象的行为包装在不同状态的对象中,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象再其内部状态改变的时候,其行为也随之改变。状态模式定义当一个对象的内原创 2017-04-27 17:36:13 · 1076 阅读 · 0 评论 -
Java并发(六):线程本地变量ThreadLocal、再聊线程池
本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/7451464,转载请注明。ThreadLocal首先说明ThreadLocal存放的值是线程内共享的,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递,这样处理后,能够优雅的解决一些实际问题。public class ConnectionManager {转载 2017-03-28 17:32:50 · 4903 阅读 · 0 评论 -
Android中数据序列化之Serializable与Parcelable
1、Serializable序列化Serializable是Java的特性之一,是将Java对象转换成字节序列的过程,与之对应的是反序列化。反序列化是将字节序列化转化为Java对象的过程。Serializable通过实现接口进行标志,只要定义的Java对象实现了Serializable接口,Java就会对该对象诸如对如下类进行序列化和反序列化操作:public class SerDemo imple转载 2017-03-10 11:24:13 · 288 阅读 · 0 评论 -
Android事件分发机制详解
理解事件分发机制,一定要记住下面这几个方法: public boolean dispatchTouchEvent(MotionEvent ev); //用来分派eventpublic boolean onInterceptTouchEvent(MotionEvent ev); //用来拦截eventpublic boolean onTouchEvent(MotionEvent ev);原创 2017-03-02 17:34:10 · 325 阅读 · 0 评论 -
Android异步消息处理机制,深入理解Handler(MessageQueue、Message、Looper)
研读Android源码就会发现,Handler几乎无处不在,之所以是这样,是因为Android应用程序是使用消息来驱动的,Android系统从某种意义上讲也是一个通过消息驱动的系统,本文将通过图文并茂+源码解读+举例理解的方式,来向你详解Android中的异步消息处理机制——Handler,以及MessageQueue、Message、Looper的关系。原创 2017-02-27 23:59:25 · 490 阅读 · 0 评论 -
Android官方文档之Location and Sensors APIs(下)
本文将介绍运动传感器(Motion Sensors)、位置传感器(Position Sensors)、环境传感器(Environment Sensors)。 如需访问官方原文,您可以点击这些链接:《Motion Sensors》《Position Sensors》《Environment Sensors》翻译 2016-08-22 11:52:34 · 1113 阅读 · 1 评论 -
Android官方文档之Location and Sensors APIs(上)
定位(Location) 和 传感器(Sensors)API充分发挥了移动设备的优势,您可以调用这些API,制作出交互性较高的应用程序翻译 2016-08-03 01:12:50 · 1029 阅读 · 0 评论 -
Android官方文档之Location and Sensors APIs(中)
本文将介绍Android设备中的传感器。翻译 2016-08-17 10:17:18 · 933 阅读 · 0 评论 -
Android官方文档之User Interface(Settings)
设置页面(Settings)用于修改、保存app的特性或行为 等。如某些新闻app可以在设置页面设置其白天/夜间模式、清除缓存、是否允许推送通知等。如下图所示。 如需为应用提供设置页面,应使用Android SDK中的Preference这个API。本文将介绍如何使用这个API构建app的设置页面,如需访问官方原文,您可以点击这个链接:《Settings》。翻译 2016-07-19 09:05:14 · 2783 阅读 · 0 评论 -
Android官方文档之User Interface(Styles and Themes)
User Interface(以下简称UI)是任何可以向用户展示、与用户交互的图形界面。Android提供了大量预定义的UI组件( a variety of pre-built UI components),比如Layout资源,除此之外,Android还提供了特殊的UI模型,如dialogs、notifications、menus 等。从本文起,将介绍Android的各种UI资源以及如何自定义UI翻译 2016-07-06 11:40:41 · 1486 阅读 · 1 评论 -
详解 Android 中的 HandlerThread
转自技术小黑屋的博客原文链接:详解 Android 中的 HandlerThread正文:HandlerThread是Android API提供的一个便捷的类,使用它我们可以快速的创建一个带有Looper的线程,有了Looper这个线程,我们又可以生成Handler,那么HandlerThread是什么,可以做什么呢,有哪些奇技淫巧可以被我们利用呢?实现原理在介绍原理之前,我们先使用普通的Threa转载 2017-03-16 16:24:20 · 322 阅读 · 0 评论 -
Android设计模式-责任链模式
介绍责任链模式(Iterator Pattern),是行为型设计模式之一。什么是“链”? 我们将多个首尾相连所构成的模型称为链。对于链式结构,每个节点都可以被拆开再连接,因此具有很好的灵活性。将这样一种结构应用于编程领域,将每个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端出发,沿着链的路径依次传递给每一个对象,直至有对象处理这个请求为止,这样的模式称为责任链模式。在上代码原创 2017-04-28 11:51:50 · 383 阅读 · 0 评论 -
Android性能优化-内存泄漏的8个Case
为什么要做性能优化?手机性能越来越好,不用纠结这些细微的性能?Android每一个应用都是运行的独立的Dalivk虚拟机,根据不同的手机分配的可用内存可能只有(32M、64M等),所谓的4GB、6GB运行内存其实对于我们的应用不是可以任意索取。优秀的算法与效率低下的算法之间的运行效率要远远超过计算机硬件的的发展,虽然手机单核、双核到4核、8核的发展,但性能优化任然不可忽略。手机应用一般使用的周期比较转载 2017-04-14 11:06:31 · 671 阅读 · 0 评论 -
Android设计模式-策略模式
策略模式介绍考虑这样一种情况:实现某个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。如,排序算法,可以使用插入排序、归并排序、冒泡排序等。针对这样的情况,一种常规方法是将多种算法写在一个类中。如,需要提供多种排序算法,可以将这些算法写到一个类中,每一个方法对应一个具体的方法;当然,也可以将这些排序算法封装到一个统一的方法中,通过if…else 或者case等条件判断原创 2017-04-27 14:14:00 · 343 阅读 · 0 评论 -
Android设计模式-抽象工厂模式
抽象工厂模式介绍抽象工厂模式(Abstract Factory Pattern),也是创建型设计模式之一。大家联想一下,在现实生活中的工厂肯定都是具体的,也就是说每个工厂都会产生某一种具体的产品,也就是每一个工厂都会产生某种具体的产品,那么抽象工厂意味着生产出来的产品是不确定的。那这岂不是很奇怪?抽象工厂模式起源于以前对不同操作系统的图形化解决方案,如,不同操作系统中的按钮和文本框控件其实现不同,展原创 2017-04-26 14:30:01 · 402 阅读 · 0 评论 -
Android设计模式-代理模式
介绍代理模式(Proxy Patter)也称委托模式,属于结构型设计模式。这是一个相当重要的设计模式,Android源码中随处可见。何为代理模式呢?比如每天吃饭时赶进度是常事,就叫公司的同时帮忙买饭,这就是一种代理;如果碰到辞职时老板不给发工资,还得委托个律师 帮你打官司,这也是代理。总之,即便在现实生活中,代理也是无处不在。定义为其他对象提供一种代理以控制这个对象的访问。使用场景当无法或者不想直接原创 2017-05-05 19:18:50 · 1237 阅读 · 0 评论 -
Android设计模式-工厂方法模式
工厂方法模式介绍工厂方法模式(Factory Pattern),是创建型模式之一。它结构简单,应用广泛。下面看看它的定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。工厂方法模式的通用模式代码//抽象产品类public abstract class Prod原创 2017-04-25 17:59:00 · 878 阅读 · 0 评论 -
Android设计模式-Builder模式
Builder模式介绍Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户再不知道内部构建细节的情况下,更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。因为一个复杂的对象有很多大量组成的部分,如汽车,有车轮、方向盘、发动机,还有各种小零件等。如何将这些部件装配成一辆汽车,这个过程很复杂,对于这种情况,为了在构建过原创 2017-04-25 10:17:45 · 353 阅读 · 0 评论 -
Android设计模式-迭代器模式
介绍迭代器模式(Iterator Pattern)又称游标模式(Cursor)模式,是行为型模式之一。迭代器模式源于对容器的访问,如Java中的List、Map、数组等,由于对容器的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还要对外部提供遍历的接口方法,因为原创 2017-05-04 17:58:34 · 737 阅读 · 0 评论 -
Android设计模式-备忘录模式
介绍备忘录模式是一种行为模式,该模式用于保存对象的当前状态,并且可以在之后再次恢复到此状态,这有点像我们平常所说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。定义在不被破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可以将该对象恢复到原先保存的状态原创 2017-05-04 12:13:34 · 802 阅读 · 0 评论 -
Android设计模式-单例模式
单例模式介绍单例模式是应用最广的模式之一。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需一个全局对象,这样有利于协调系统的整体行为。如在一个应用中,应当只有一个ImageLoader实例,这个ImageLoader中又含有线程池、缓存系统、网络请求等,很消耗资源,所以,没有理由让它构造多个实例。这种不能自由构造对象的情况,就是单例模式的使用场景。单例模式定义确保某一个类原创 2017-04-21 14:48:01 · 464 阅读 · 0 评论 -
Android设计模式-观察者模式
观察者模式是一个使用概率很高的模式,它最常用的地方时GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们的依赖变小、甚至毫无依赖。在Android开发中,UI具有易变性,但是业务逻辑变化不大,此时GUI系统就需要一套机制在应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式在此就可以派上用场。定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状原创 2017-05-02 17:34:48 · 529 阅读 · 0 评论 -
Android官方文档之Animation
Android提供了三种动画机制:属性动画、补间动画、帧动画 。其中属性动画被官方推荐使用,因为它拥有更多的灵活性和特色,并可以几乎完全替代后两种动画。翻译 2016-06-18 15:50:29 · 4520 阅读 · 1 评论 -
Android官方文档之App Resources(下)
本文将介绍Android中Resource Types的drawable、menu、layout。翻译 2016-06-30 10:40:34 · 2785 阅读 · 1 评论 -
Android官方文档之Bound Services
绑定式Service在CS结构中扮演着Server的角色。绑定式Service允许其他组件(如Activity)绑定该Service、发送请求、接收响应、甚至IPC通信( interprocess communication)。绑定式Service通常服务于其他应用程序的组件、且并不总在后台运行。翻译 2016-05-14 13:47:47 · 5941 阅读 · 1 评论 -
Android官方文档之App Components(Activities)
Activity是Android四大组件之首,本文将介绍Activity的含义、创建、启动、销毁、生命周期 等。如需访问官方原文,您可以点击这个链接:《Activities》。翻译 2016-05-03 16:19:31 · 3335 阅读 · 0 评论 -
Android 6.0及以上版本的运行时权限介绍
运行时权限(Runtime Permission)是Android 6.0( 代号为 Marshmallow,API版本为 23)及以上版本新增的功能,相比于以往版本,这是一个较大变化。本文将介绍如何在代码中加入并配置运行时权限功能。翻译 2016-04-11 12:45:27 · 3403 阅读 · 4 评论 -
Android官方文档之App Components(Common Intents)
隐式Intent足够强大,以至于系统提供了大量的Intent方便开发者启动系统应用程序,本文将介绍一些常用的隐式Intent、以及如何自定义intent-filters以匹配隐式intent。翻译 2016-04-27 01:49:03 · 7087 阅读 · 5 评论 -
Android存储的实现
本文结合案例介绍了Android存储的基础知识点:1、使用SharedPreferences读写简单的数据;2、保存和读取外部存储的内容;3、保存和读取内部存储的内容;4、对Android内嵌数据库SQLite的增删改查、更新版本等操作;5、使用四大组件之一的ContentProvider,并结合ContentResolver或取内容原创 2016-04-10 15:19:04 · 3182 阅读 · 0 评论 -
Android传感器介绍
Android系统提供了对传感器的支持,如果手机设备的硬件提供了这些传感器,Android应用可以通过传感器来获取设备的外界条件,包括手机设备的运行状态、当前摆放方向、外界的磁场、温度和压力等。Android系统提供了驱动程序去管理这些传感器硬件,当传感器硬件感知到外部环境发生改变时,Android系统负责管理这些传感器数据。获得设备支持的所有传感器基于Android平台开放性,尽管Google为A原创 2016-02-26 12:18:19 · 930 阅读 · 0 评论 -
Android照相和录音功能的使用
本文主要分为两大部分,首先介绍了Camera API和SurfaceView,然后介绍了在Android中使用照相功能和录像功能的方法。原创 2016-02-22 17:23:47 · 1848 阅读 · 0 评论 -
Google Maps API for Android 指南(一)
Android版Google API 介绍。通过Android版的Google API,开发者可以基于Google Map的数据开发自己的APP,API将自动连接至Google Map服务器、下载数据、显示呈现以及响应地图手势等。开发者也可以使用API添加标记(markers)、模块(polygons)、覆盖自己的基础地图(overlays to a basic map)、改变视图等。翻译 2016-03-05 18:54:30 · 4532 阅读 · 0 评论 -
Android基于蓝牙的聊天demo
本文介绍了一个基于蓝牙的聊天demo:在服务端,通过打开蓝牙、设置可见状态、不断监听客户端的访问、建立连接、交换数据等步骤,实现服务端的蓝牙功能创建;在客户端,通过打开蓝牙、搜索蓝牙设备(服务端)、绑定蓝牙设备、建立连接、交换数据等步骤,实现客户端的蓝牙功能创建。有关上述蓝牙基础部分的内容,请参见我的博文《Android蓝牙开发介绍》。原创 2016-03-02 10:04:27 · 1674 阅读 · 0 评论 -
Android官方文档之App Components(Fragments)
Fragment是Android API中的一个类,它代表Activity中的一部分界面;您可以在一个Activity界面中使用多个Fragment,或者在多个Activity中重用某一个Fragment。本文将介绍Fragment的定义、创建、添加、移除、生命周期 等,如需访问官方原文,您可以点击这个链接:《Fragments》。Fragments可以把Fragmen翻译 2016-05-05 11:01:58 · 2469 阅读 · 2 评论 -
Android官方文档之Content Providers
Content Providers是Android中四大组件之一,用于管理应用程序访问结构化的数据。Content Providers可以压缩数据,并保护访问数据的安全。Content Providers是应用程序访问跨进程数据的标准接口。翻译 2016-05-16 13:29:35 · 5013 阅读 · 0 评论 -
你真的会用Context么?
Context是为一个Android程序提供各种功能、资源、服务的一个环境, Context 的资源在系统中只有一套,因为它的子类(Application、Activity、Service)对这同一块资源处理方式的不同,让Context 对象在功能上表现出各自之间的差异。转载 2016-04-21 08:50:34 · 1106 阅读 · 0 评论 -
Android官方文档之App Resources(中)
本文将继续介绍App Resources中的资源类型,如果需要了解Android中的资源规范,您可以访问我翻译的这篇官方文档:《Android官方文档之App Resources(上)》。如需访问官方原文,您可以点击这个链接:《Resource Types》。资源类型(Resource Types)本节将介绍Android中各种资源的类型、格式、语法、以及引用方式。动画资源翻译 2016-06-28 23:26:47 · 3836 阅读 · 0 评论 -
Android官方文档之App Resources(上)
想做出一款出色的App,仅仅编写Java代码还不够。在代码中调用资源(Resources ),如位图(bitmaps)、布局资源( layout definitions)、UI中需要展示的字符串资源(user interface strings)、动画资源(animation instructions)等,可以让您的App更加出色。本文将介绍Android中各种类型的资源、以及获取资源的方式。翻译 2016-06-28 10:04:49 · 3017 阅读 · 0 评论 -
Android官方文档之Creating a Content Provider
Content Provider管理着应用程序需要访问的数据仓库。这需要您在程序中继承并在manifest中注册组件。该类就是其他应用程序与您的应用程序数据库之间的接口。通过`ContentProvider`,其他应用程序可以对本应用的数据库进行方便的操作,这需要使用ContentResolver。翻译 2016-05-20 23:25:14 · 6301 阅读 · 0 评论 -
Android官方文档之Calendar Provider
Calendar Provider是一个用于提供用户标记在日历上事件的数据仓库。Calendar Provider 的API提供了包括增删改查在内的一系列操作日历事件的方法。翻译 2016-06-01 18:32:36 · 5835 阅读 · 0 评论