
Android应用
文章平均质量分 89
羊之草叶
Android开发者
展开
-
深入浅出Android消息通信机制
消息通信是Android系统中使用相当普遍的一种线程间通信方式。既然是线程间的通信,就一定存在共享的对象,一定需要处理线程间的同步。本文对Handler、Looper和MessageQueue所实现的消息通信机制做深入的剖析。 图1. Android消息机制的框架一、HandlerHandler用于发送和处理Message和Runnable对象(两者统称为消息),即Handler原创 2017-08-16 08:01:10 · 943 阅读 · 0 评论 -
Android中的颜色设置
1、在android中经常看到设置的颜色为八位的十六进制的颜色值,例如:123public static final class color { publicstatic final int lightblue=0x7f040000;}或者在Java转载 2015-03-04 19:54:25 · 431 阅读 · 0 评论 -
DrawerLayout控件实现导航效果
Android自带的实现左侧导航效果的示例代码,可以根据这个demos进行扩充需求。package com.example.android.navigationdrawerexample;import java.util.Locale;import android.app.Activity;import android.app.Fragment;import android.app原创 2014-12-10 23:24:16 · 393 阅读 · 0 评论 -
RelativeLayout介绍
1. RelativeLayout用到的一些重要的属性:第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alig转载 2015-01-15 23:37:04 · 429 阅读 · 0 评论 -
我理解的Android加载器
我理解的Android加载器2013-08-02 16:07 by 轩脉刃, 1590 阅读, 2 评论, 收藏, 编辑Android的加载器(loader)是从Android 3.0开始出来的东西。要理解这里需要先理解为什么会出现加载器(也有地方把它说成是装载器)呢?如果没有加载器...首先Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正转载 2014-12-11 10:24:07 · 378 阅读 · 0 评论 -
AsyncTaskLoader介绍
Loader的特点和使用场所 Loader 可以在Activity 和Fragments 的界面下运行(本篇将结合上篇文章的Fragments的DEMO进行讲述如何在Fragments 下使用Loaders)。它可以提供类似于AysncTask一样的异步请求数据加载的功能,实际上它就是来源于AysncTask 的扩展并增加了很多人性化的功能,例如加载进度框、更好的控制API等。它转载 2014-12-10 23:52:36 · 728 阅读 · 0 评论 -
BaseAdapter与CursorAdapter的结合使用举例
一、 CursorAdapter的介绍需要由子类实现的两个方法:public abstract View newView(Context context, Cursor cursor,ViewGroup parent);public abstract void bindView(View view, Context context, Cursorcursor);对外提供的公共方法原创 2015-01-14 23:34:31 · 624 阅读 · 0 评论 -
Android中内容观察者的使用---- ContentObserver类详解 (转)
ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器,相应地ContentObserver也分为“表“ContentObserver、“行”ContentObserver,当然这是与它所监听转载 2015-01-13 15:10:55 · 468 阅读 · 0 评论 -
OnEditorActionListener与TextWatcher 的使用
1. TextView.OnEditorActionListener一般由EditText控件使用,监听当输入内容按下Enter键后时响应的事件。public static interfaceTextView.OnEditorActionListenerandroid.widget.TextView.OnEditorActionListener原创 2014-12-24 00:15:16 · 2159 阅读 · 0 评论 -
ContentObserver与DatasetObserver的区别
1. ContentObserver ContentObserver主要是通过Uri来监测特定的Databases的表,如果该Databases表有变动则会通知更新cursor中的数据。 如果使用ContentProvider操作数据库,在ContentProvider的query()方法中会通过Cursor.setNotificationUri()注册uri描述的表,在ins转载 2015-01-13 15:13:33 · 456 阅读 · 0 评论 -
AndroidManifest中关于permission的使用
Permission是用来限制应用程序对设备上的数据和功能的使用权限。这种限制是用来保护关键的数据和功能防止被误用而危害用户的使用。每一个permission都有一个独立的标签用来指示那种操作被限制。如:android.permission.CALL_EMERGENCY_NUMBERSandroid.permission.READ_OWNER_DATAandroid.permi原创 2015-01-12 22:54:39 · 3194 阅读 · 0 评论 -
DownloadProvider介绍
一、介绍DownloadProvider提供了一个保存数据的格式,如content://downloads/my_downloads/1,或content://downloads/all_downloads/2。第三方应用可以使用DownloadManager的enqueue(Request)方法来请求下载,并可以使用ContentResolver的query()方法来查询,注意这里只能查到他原创 2015-04-05 23:57:30 · 8517 阅读 · 0 评论 -
Android系列---JSON数据解析
一、什么是jsonjson(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过json来进行交换。尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。json一共有两种数据结构,一种是以转载 2015-04-29 16:05:15 · 367 阅读 · 0 评论 -
Android中SharedPreferences的理解
SharedPreferences的创建通过Context的getSharedPreferences(String name, int mode)返回创建的SharedPreferences.原创 2017-10-16 19:59:39 · 536 阅读 · 0 评论 -
从截屏调用功能看Android Binder的调用流程
以截屏功能为例,分析一下Android中Binder通信的流程。class ISurfaceComposer: public IInterface { DECLARE_META_INTERFACE(SurfaceComposer); // flags for setTransactionState() enum { eSynchronous = 0x01,原创 2017-09-12 11:11:39 · 530 阅读 · 0 评论 -
Android中MediaCodec的使用
一、主屏幕信息的获取 SurfaceComposerClient类提供了获取主屏幕信息的方法,获取结果保存在DisplayInfo结构体中,如果要监听屏幕方向变化,则可以轮询getDisplayInfo( )函数来实现。sp<IBinder> mainDpy = SurfaceComposerClient::getBuiltInDisplay( ISurfaceComposer::原创 2017-08-12 14:01:52 · 3685 阅读 · 0 评论 -
Android中Graphic的理解
APP进程private int relayoutWindow(WindowManager.LayoutParams params, int viewVisibility, boolean insetsPending) throws RemoteException { float appScale = mAttachInfo.mApplicationScale原创 2017-07-23 17:08:11 · 1070 阅读 · 0 评论 -
Android中Looper类的设计与实现
Android系统中Looper类的设计原创 2017-06-18 22:08:12 · 905 阅读 · 0 评论 -
应用程序请求注册对Input事件的监听
Android系统的Input子系统分析原创 2017-02-27 23:49:43 · 1562 阅读 · 0 评论 -
Anroid中强指针和弱智针介绍
Android中强弱指针的总结原创 2016-10-23 19:25:00 · 1600 阅读 · 1 评论 -
Android中对GridView, ListView等滚动控件的Touch事件onInterceptTouchEvent,onTouchEvent理解
在开始正文之前,首先得感谢http://blog.youkuaiyun.com/guitk/article/details/7057155提供的一篇转载文章,里面说的内容和插图让我对TouchEvent的事件传递迅速有了一个大致的印象。但是文章里面有说的不全面不详细的地方,特发此博客记录个人对于这类问题的理解,用来补充和完善,有不妥的地方,也欢迎大家批评讨论。 正如命名一样,onInter转载 2015-06-09 18:20:24 · 718 阅读 · 0 评论 -
Android中Bitmap和Drawable
一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵二、Bitmap1、从资源中获取Bit转载 2015-06-06 16:08:55 · 372 阅读 · 0 评论 -
自定义的AsyncTaskLoader类使用指南
Android源码里面一个自定义的AppListLoader,来示例如何使用AsyncTaskLoader及LoaderManager,这里做了一部分改动,方便梳理代码!LoaderActivity.javapackage com.example.loadercustom;import java.io.File;import java.text.Collator;import j原创 2014-12-18 21:53:27 · 960 阅读 · 0 评论 -
Android Contextual Menus之一:floating context menu
上下文菜单 上下文相关的菜单(contextual menu)用来提供影响UI中特定item或者context frame的动作。 你可以为任何View提供上下文菜单,但是最常见的使用场景是在ListView、GridView或者其他集合类控件中的项目上,这样用户就可以对特定的项目执行一些直接的操作。 有两种方式来提供上下文相关的动作: 1.用悬浮上下文菜单转载 2014-12-02 21:18:34 · 554 阅读 · 0 评论 -
Android Contextual Menus之二:contextual action mode
Contextual action mode Contextual action mode是 ActionMode 的系统实现,关注于执行上下文相关动作的用户交互。 当用户通过选择一个项目使能这个模式,一个contextual action bar就会出现在屏幕上方,显示用户对当前选中的项目可以执行的动作。 当这个模式使能时,用户可以:选择多个项目(如果你允许的话)、转载 2014-12-02 21:03:48 · 601 阅读 · 0 评论 -
ViewPager的使用指南
一个小例子,可以帮忙记住如何使用ViewPager。MainActivity.javapackage com.example.viewpagerdemos2;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import a转载 2014-04-07 21:25:25 · 508 阅读 · 0 评论 -
Android中Dialog的理解
Dialog的显示当要显示一个dialog时,在Activity的onCreate()方法中调用showDialog(id)方法。showDialog()会回调@Overrideprotected Dialog onCreateDialog(int id,Bundle args) ;在onCreateDialog()中传入的参数id就是showDialog(id)定义的id,用原创 2014-04-05 00:29:04 · 914 阅读 · 0 评论 -
一个简单的屏幕保护例子
Demos简介: 当屏幕或按键没有被触碰的时间超过5s时,会进入屏幕保护模式。屏幕保护模式下,原来的布局文件被隐藏,只显示图片背景,且每1s图片切换一次,图片切换时有淡入、淡出效果。原创 2014-05-06 23:14:25 · 742 阅读 · 0 评论 -
四大组件中的Service学习
Service的启动:1. 在应用中调用startService(Intent service)来启动Service,如果该Service还未启动,则系统会依次回调Service类的onCreate()、onStartCommand()、onStart()方法;启动的服务会一直运行在后台,即便是应用已经退出,除非该Service的stopSelf()被调用或者外界通过stopService(I转载 2014-05-06 23:29:22 · 480 阅读 · 0 评论 -
Android布局文件layout.xml的一些属性值
第一类:属性值 true或者 falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_转载 2014-04-01 23:32:46 · 774 阅读 · 1 评论 -
Android中SQLiteOpenHelper使用示例
我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的 构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个 方法。onCreate(SQLiteDatabase db) : 当数据库被首次创建时执行该方法,一般将创转载 2014-05-02 01:06:51 · 836 阅读 · 0 评论 -
Android中的Handler与HandlerThread浅析
一、HandlerHandler在android里负责发送和处理消息。它的主要用途有: 1)按计划发送消息或执行某个Runnanble(使用POST方法); 2)从其他线程中发送来的消息放入消息队列中,避免线程冲突(常见于更新UI线程) 默认情况下,Handler接受的是当前线程下的消息循环实例(使用Handler(Looper looper)、Handler(Lo转载 2014-05-01 00:05:09 · 581 阅读 · 0 评论 -
Android中自定义Preference的使用
有时候为了自定义布局的风格,xuy原创 2014-04-29 23:32:28 · 845 阅读 · 0 评论 -
BaseAdapter的使用指南
BaseAdapter主要是为ListView提供数据源的,getView()返回的是每一行的view,我们可以在这个方法中加载自己设定的每一行的布局。下面用一个例子来说明如何使用BaseAdapter。MainActivity.javapackage com.example.baseadpaterdemos;import java.util.ArrayList;import jav转载 2014-03-13 23:58:37 · 772 阅读 · 0 评论 -
PreferenceActivity与PreferenceFragment的理解
一.PreferenceActivity PreferenceActivity用来呈现一种层次化的preferences布局,所有继承自它的activity可以显示一个或多个headers,每一个header都与一个PreferenceFragment相关。PreferenceActivity有两种表现方式:1.小型屏幕上,只显示headers列表,选择一个header会只显示该h转载 2014-03-07 22:34:34 · 1203 阅读 · 0 评论 -
Fragment与Activity的理解
1. 为什么要引入Fragment? 引入Fragment是出于大屏幕的平板电脑的需要,使用Fragment可以在同一个activity中显示两个或多个Fragment,这些Fragment都属于一个Activity。Fragment必须被“嵌入”到activity中使用,因此Fragment虽然有自己的生命周期,但它的生命周期会受到所在的Activity的限制。先看一看原创 2014-04-07 14:30:58 · 1023 阅读 · 0 评论 -
Android中的Filter使用
android.widget.Filterablepublic interface Filterable{ public Filter getFilter();}Filterable通常由Adapter实现,可以通过Filter对象来过滤数据。Filter对象使用一个filter pattern对数据进行约束。Filter是一个抽象类,它的继承者需要实现以下两转载 2014-04-11 22:04:03 · 3110 阅读 · 0 评论 -
在Fragment中使用Loader机制介绍
一、LoaderManagerImpl维护的成员变量:final SparseArray mLoaders = new SparseArray(0);final SparseArray mInactiveLoaders = new SparseArray(0);final String mWho;Activity mActivity;//初始化为false,在doStart()中原创 2014-12-17 23:16:28 · 857 阅读 · 0 评论 -
ActionBar的用法
1. 使用自定义的View填充ActionBar转载 2014-07-19 00:33:09 · 737 阅读 · 0 评论 -
ContentProvider的使用指南
一、什么是ContentProvider? ContentProvider是一个抽象类,可以理解为一个特殊的存储数据的类型,它提供了一套标准的接口来获取和操作数据。可以把数据封装到ContentProvider 中,从而是这些数据可以被其他的应用程序所共享。搭建起了所有应用程序之间数据交换的桥梁。转载 2014-11-20 21:56:56 · 474 阅读 · 0 评论