Android系统组件使用
文章平均质量分 95
一整套完整的android入门、进阶、组件分析等一个体系的知识总结、分析、共享。
CrazyMo_
最美不过,心中有梦,身旁有你!
展开
-
Android 进阶——Framework 核心之四大组件跨进程共享组件ContentProvider 创建和启动机制源码详细分析(二)
ContentProvider的onCreate方法先于Application的onCreate而执行。原创 2020-07-18 22:02:17 · 588 阅读 · 0 评论 -
Android 进阶——Framework 核心之四大组件跨进程共享组件ContentProvider 核心知识总结(一)
ContentProvider作为四大组件之一,最适于跨进程(跨APP)之间的数据共享。原创 2020-07-12 14:01:54 · 623 阅读 · 0 评论 -
Android 进阶——Framework 核心之四大组件常驻后台Service 核心知识总结
Service(服务)是一种可以在后台执行长时间运行操作而没有用户界面的组件,如非特意指定,属于App进程的一部分代码,默认在主线程中创建并运行于主线程,由AMS去通知App去调用Service的生命周期函数。原创 2020-05-02 14:02:16 · 1606 阅读 · 0 评论 -
Android 进阶——实现周期性任务调度的几种攻略详解
任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务,简而言之可以理解成周期性执行某一项任务。原创 2017-10-09 14:33:25 · 4819 阅读 · 0 评论 -
Android进阶——布局优化之灵活借助ViewStub实现懒加载
ViewStub 直接继承自View,是一种不可见,0大小的可以在运行的时候再加载的View,仅只有在调用inflate()进行映射内容布局之后才开始创建相应的对象。原创 2017-12-08 14:52:56 · 15545 阅读 · 5 评论 -
Android入门——WebView使用及Java和JavaScript交互小结
WebView是用来展示Web页面的,通过WebView控件我们可以在App中直接使用PC端的Web页面,通过addJavascriptInterface方法还可以实现JavaScript方法和Java方法的互相调用,减少了不少的开发成本。原创 2017-04-06 11:30:04 · 1114 阅读 · 0 评论 -
Android入门——选择器selelctor之ColorStateList和StateListDrawable使用小结
StateListDrawable作为Drawable系中重要的一员家族成员,该类定义了不同状态值下与之对应的图片资源,ColorStateList直接继承Object通过实现Parcelable接口达到序列化,虽然不是Drawable系的子类,但是其实也可以看成是一个Drawable对象。两个对象都是selector。原创 2016-12-11 14:36:21 · 4676 阅读 · 0 评论 -
Android 入门——ConstraintLayout详解以及使用替代你的常规布局
使用ConstraintLayout来替代多层嵌套布局。原创 2017-06-28 17:36:56 · 6778 阅读 · 0 评论 -
Android 入门——App国际化之动态切换多语言小结
引言如果你的App是面向国际的或者是做手机ROM的,那么对于Android国际化适配应该不会陌生,今天就好好地总结下。一、Locale和Configuration 概述Locale对象是用于表示特定的地理,政治或文化区域。 需要Locale执行其任务的操作称为区域设置敏感,并使用Locale为用户定制信息。 例如显示数字是区域设置敏感操作 - 应根据用户原生国家,地区或文化的习惯和...原创 2018-09-02 14:09:30 · 4637 阅读 · 0 评论 -
Android进阶——Sharedpreferences保存对象和图片等复杂类型的数据
Sharedpreferences保存序列化的对象和图片等复杂类型的数据原创 2017-01-16 18:15:24 · 11206 阅读 · 0 评论 -
Android进阶——Handler的应用之解决Only the original thread that created a view hierarchy can touch its views
解决错误:Only the original thread that created a view hierarchy can touch its views。原创 2017-01-05 15:57:14 · 40303 阅读 · 1 评论 -
Android进阶——多线程间的通信之调用系统标准摄像头自动对焦并自动完成隐蔽拍照
调用Android系统标准摄像头,利用SurfaceView来实现自定义预览界面,按照预定周期自动对焦完成自动拍照,保存照片。原创 2017-03-09 19:20:52 · 2922 阅读 · 1 评论 -
Android进阶——性能优化之尽量多使用AsyncTask进行短时间网络通信
一种高效轻量级的异步任务类——AsyncTask,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线中更新UI。原创 2017-05-23 11:50:03 · 2347 阅读 · 0 评论 -
Android进阶——实战使用ConstraintLayout 替代LinearLayout、RelativeLayout和PercentLayout
ConstraintLayout 可以替代很多常规布局组件快速实现相同的效果,尤其是在使用LinearLayout、RelativeLayout、PercentLayout需要进行N层嵌套的才能实现的时候,使用约束布局简单有效的实现UI效果。原创 2017-09-26 15:28:38 · 25791 阅读 · 2 评论 -
Android进阶——你所知道的Camera2和你所不知道的Camera2完全解析
全新的android.hardware.Camera2 。Android 5.0对拍照API进行了全新的设计Camera2 API,相比原来android.hardware.Camera API 在架构上有了很大的改变,不仅大幅提高了Android系统拍照的功能,还能支持RAW照片输出,甚至允许程序调整相机的对焦模式、曝光模式、快门等。原创 2017-10-09 14:28:45 · 11076 阅读 · 5 评论 -
Android进阶——借助简单便捷的ActivityLifecycleCallbacks实现全周期监听Activity
使用Application.ActivityLifecycleCallbacks全生命周期监控Activity的生命周期——一经注册,就会自动监听整个APP 中所有Activity 的生命周期方法的执行(会在对应的父类Activity的方法被执行之后自动触发)原创 2017-12-22 17:56:41 · 7569 阅读 · 2 评论 -
Android进阶——借助Loader机制以一种更优美的方式异步加载数据(一)
Loader机制提供了一套在UI的主线程中异步加载数据的框架。使用Loaders可以非常简单的在Activity或者Fragment中异步加载数据,一般适用于大量的数据查询,或者需要经常修改并及时展示的数据显示到UI上,这样可以避免查询数据的时候,造成UI主线程的卡顿。原创 2018-01-03 11:50:40 · 1495 阅读 · 0 评论 -
Android进阶——自定义Loader以一种更优美的方式异步加载不同类型的数据(二)
继承自AsyncTaskLoader实现自定义Loader来获取手机所安装所有APP的信息原创 2018-01-04 17:22:36 · 985 阅读 · 0 评论 -
Android进阶——RecycleView的使用之自定义聊天界面(三)
RecycleView得以正常完成基本的工作离不开RecycleView.Adapter和RecyclerView.LayoutManager,RecycleView相当于只是一个容器,如果没有Adapter那么它就没有任何价值。Acitivty通过布局加载RecycleView,然后触发对应的生命周期方法,去完成AdapterView的初始化工作。原创 2016-10-07 12:20:00 · 3895 阅读 · 2 评论 -
Android进阶——RecycleView的使用之自定义单选列表(二)
实现单选列表:单击勾选同时动态获取设备的状态显示并获得对应的时间值,再次单击取消勾选,长按删除,单击自定义时弹出自定义对话框,选择时间之后显示到列表上原创 2016-10-07 00:20:48 · 4520 阅读 · 0 评论 -
Android 入门——项目结构目录、文件详解
引言无论是你的第一个Android项目——“hello world!”,还是复杂精美的商业APP,每一个Android程序都拥有一系列的核心目录结构和文件,他们分别用于定义应用程序的功能,有一些目录是Ide自动为我创建的,有些则是默认生成的,有些是ide自动配置不能去修改,有些则是手动创建的。原创 2015-09-22 15:25:30 · 3236 阅读 · 0 评论 -
Android入门——利用Canvas完成绘制点、圆、直线、路径、椭圆、多边形等2D图形
引言一个成功的APP离不开优秀的UI,像墨迹天气等其他APP的一些精彩特效,仅仅依靠系统自带的UI组件是绝不可能实现。所以Android提供了另一种构造UI组件的方式——通过画布Canvas自己绘画,不夸张地说“只有想不到,没有做不到”配以各种动画效果就能实现。原创 2015-10-07 01:16:44 · 13846 阅读 · 0 评论 -
Android进阶——GridView实现可长按item显示可删除的小图标的UI
GridView与之前我们熟悉的ListView(现在基本已被RecycleView所替代)一样都是比较常用的多控件布局,他们都是AdapterView的子类,不同的是GridView可以一行显示多个item,具体显示多少个item取决于开发者的设置,实现网格布局的首选。与其他AdapterView的原理一样,可以理解为我们的GridView和ItemView提供了UI框架,而Adapter则是往这个框架里填充数据原创 2016-10-04 10:53:49 · 4678 阅读 · 2 评论 -
Android进阶——万能的RecycleView详解(一)
RecyclerView继承自ViewGroup,而不是与ListView、GridView是AdapterView的子类,它是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。具有极高的扩展性,因此用它可以创建想到的任何种类的的布局,ListView、GirdView还有瀑布流式布局,能够在布局的计算过程中检测批量数据集的变化。从而跟踪适配器的变化来计算动画保存的LayoutManager。原创 2016-10-04 15:54:41 · 3878 阅读 · 0 评论 -
Android 进阶——ViewPager详解之ViewPager的应用(二)
ViewPager+Adapter+Fragment的主流框架。原创 2016-08-05 04:20:49 · 1828 阅读 · 0 评论 -
Android进阶——ViewPager详解之初识ViewPager(一)
ViewPager继承自ViewGroup,是左右两个屏幕平滑地切换的一个容器,容器里呈现的视图由对应的Adapter决定,和其他标准的AdapterView类似。简而言之就是我们通过Adapter把View放到ViewPager里,动动手指我们就可以实现左右滑动互相切换View了。另外ViewPager的更新不是直接由ViewPager本身去完成的,而是通过观察者去调用PagerAdapter的notify原创 2016-08-03 16:25:29 · 14389 阅读 · 2 评论 -
Android入门——数据存储之SharedPreferences详解与应用
SharedPreferences是一个轻量级存储接口,基于键值对(key-value)的方式把数据封装为xml形式,由SharedPreferences实例负责数据的访问和读取,由其内部接口SharedPreferences.Editor来完成数据的新增、删除和更新操作。原创 2016-07-16 17:58:27 · 2239 阅读 · 0 评论 -
Android进阶——Preference详解之Preference系的基本应用(三)
CheckBox选择项CheckBoxPreference、EditText编辑对话框EditTextPreference、列表选择ListPreference、多项选择MultiSelectListPreference、 开关选择SwitchPreference的应用和管理以及底层机制的简单描述。原创 2016-07-16 15:48:50 · 9011 阅读 · 0 评论 -
Android进阶——Preference详解之Preference系的基本应用和管理(二)
这篇文章就给大家总结下Preference、PreferenceActivity、PreferenceGroup、RingtonePreference的普通应用和管理包含创建、移除和一些简单的原理验证原创 2016-07-14 22:21:39 · 19807 阅读 · 2 评论 -
Android进阶——Preference详解之初识Preference及Preference系(一)
Preference作为该家族的终极基类,直接继承Object,其他子类Preference直接或者间接继承于Preference。他们的作用就是定义要显示的UI(其实作用类似于普通的Layout布局文件),特殊之处在于定义好了UI之后再在PreferenceActivity里以ListView的形式整体布局,每一个子Preference相当于是一个列表项。原创 2016-07-06 21:04:15 · 13015 阅读 · 4 评论 -
Android入门——Fragment详解之Fragment与Activity通信及数据交换(二)
在Android入门——Fragment详解之基本概念与用法(一)中,总结了Fragment的基本操作与应用,也知道了Fragment与Activity之间联系紧密。Fragment必须被“嵌入”Activity中使用,虽然也拥有自己独立的生命周期,但在一定时期内也还是受到说依附的Activity的生命周期控制。Fragment是相对独立的。原创 2016-06-19 14:50:29 · 4189 阅读 · 0 评论 -
Android入门——样式主题和自定义属性资源
样式(style)是用来Activity元素级别的,改变指定控件或者Layout的外观和格式的一组属性集合。样式可以用来指定高度、填充、自字体大小、背景颜色等等。样式在xml资源文件(res/values/styles.xml)中定义,和指定布局的xml文件是分开的。安卓中的样式和网页设计中的CSS(级联样式表)类似。原创 2016-05-06 13:27:54 · 5237 阅读 · 0 评论 -
Android入门——res下各种资源xml和.9 Patch图片的应用
Android 中的Drawable是一个抽象的概念,换言之所有能被画出来的都可以定义成Drawable(A Drawable is a general abstraction for "something that can be drawn." )。所以Android应用中使用最为广泛和最灵活的资源,不仅仅可以直接使用*.png、*.9.png、*.gif、*.jpg等图片作为资源,还可以使用多种xml原创 2016-04-01 15:07:44 · 7595 阅读 · 0 评论 -
Android进阶——多线程和异步任务小结
引言众所周知,无论是在任何的程序语言和操作系统中。多线程、多进程和异步同步始终都是经久不衰的话题。当然在我们实际的Android项目需求中也是如此,很多的业务需求都通过多线程及异步任务以便用户能够在使用App中得到优秀的体验。而很多App在使用过程中出现各种莫名其妙的问题,多是由于开发人员使用多线程不当造成的,因此掌握在多线程及异步任务的原理和使用方法非常有必要。一Android UI主线程设计原则原创 2015-12-22 11:35:09 · 4449 阅读 · 4 评论 -
Android进阶——强大的异步不可或缺的组件Handler详解(一)
Handler跟多线程,消息队列联系很紧密,其主要的功能就是发送和处理Message,也可以分发Runnable对象。 每个Handler实例,都会绑定到创建他的线程中(默认是位于主线程,但是我们可以通过Looper对象来指定到其他线程)。原创 2015-12-22 09:55:28 · 3648 阅读 · 0 评论 -
Android进阶——使用Pull解析和生成轻量级数据XML
我们都知道XML被设计用来传输和存储数据。其设计宗旨是传输数据,作为一种轻量级的数据格式,XML不仅可以应用于Web 开发的许多方面,常用于简化数据的存储和共享。而且在Android和Java中的数据交互方面也有大作为。一 Pull解析器概述作为一款开源的基于事件的解析器,Pull不仅可以在Android中直接使用,在Android内部很多XML的文件都是基于Pull的,所以解析XML我们应该优先考虑XML原创 2015-12-01 11:32:42 · 1132 阅读 · 0 评论 -
Android进阶——借助强大Span家族增添丰富的特效及格式化字符串
TextView差不多是其他很多UI组件的基类,比如说我们熟悉的Button、CheckedTextView, DigitalClock, EditText 等等都是 直接或者间接继承了TextView。更重要的是TextView还能显示图片、超链接形式的文本、emoj表情混合字符串形式、图片混合字符串形式等等。原创 2015-10-09 02:12:01 · 3511 阅读 · 0 评论 -
Android入门——内容提供者Content Provider详解与应用
引言在Android 中,内容提供者Content Provider提供了对内容和外部数据进行增删改查的功能,应用程序可以通过内容提供者来访问其他应用程序的数据,作为内容提供者也可以成为内容提供者向其他应用程序共享内部数据。通常系统的一些内部数据例如联系人数据、短信、图像、音频和视频,都可以通过系统预定义的内容提供器(android.provider.*)进行访问。原创 2015-10-01 19:56:50 · 1820 阅读 · 0 评论 -
Android入门——数据存储之SQLite详解与简单应用
引言很多时候我们的APP都不能独立于数据之外,常常对数据进行各种操作。Android为数据存储提供了多种方式,主要有五种:文件、SharedPreferences、SQLite、网络、内容提供者。这一篇先总结下关于如何使用SQLite数据库。一SQLite 数据库概述在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)原创 2015-10-01 18:42:44 · 3029 阅读 · 0 评论 -
Android入门——远程Remote Service AIDL详解及应用
本地服务Local Service只用于服务和访问者在同一个进程中(同一应用)的通信。而使用远程服务Remote Service和AIDL接口语言用于跨进程之间的通信。在Android中每个应用都有自己的进程,当需要在不同进程之间传递对象时可以通过AIDL原创 2015-09-27 22:21:35 · 2041 阅读 · 0 评论