Android
文章平均质量分 74
guangwen_lv
这个作者很懒,什么都没留下…
展开
-
ContentObserver类详解
ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于 数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器, 相应地ContentObserver也分为“表“ContentObserver、“行”ContentObser转载 2014-09-04 13:01:11 · 358 阅读 · 0 评论 -
java线程中的interrupt,isInterrupt,interrupted方法
在java的线程Thread类中有三个方法,比较容易混淆,在这里解释一下(1)interrupt:置线程的中断状态(2)isInterrupt:线程是否中断(3)interrupted:返回线程的上次的中断状态,并清除中断状态原创 2014-08-28 15:14:45 · 699 阅读 · 0 评论 -
程序编译中的字节对齐
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类转载 2014-08-28 11:53:56 · 1268 阅读 · 0 评论 -
ContentProvider共享数据原理分析
在Android系统中,不同的应用程序是不能直接读写对方的数据文件的,如果它们想共享数据的话,只能通过Content Provider组件来实现。那么,Content Provider组件又是如何突破应用程序边界权限控制来实现在不同的应用程序之间共享数据的呢?在前面的文章中,我们已经简要介绍过它是通过Binder进程间通信机制以及匿名共享内存机制来实现的,在本文中,我们将详细分析它的数据共享原理。转载 2014-08-31 15:02:59 · 3102 阅读 · 0 评论 -
Android中的定时器AlarmManager
在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmServiceAlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,常用方法有五个:(1)set(int type,long startT转载 2014-08-31 20:09:57 · 425 阅读 · 0 评论 -
android常用广播
Intent.ACTION_AIRPLANE_MODE_CHANGED;//关闭或打开飞行模式时的广播Intent.ACTION_BATTERY_CHANGED;//充电状态,或者电池的电量发生变化//电池的充电状态、电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册Intent.ACTION_BATTERY_L转载 2014-09-01 23:26:43 · 360 阅读 · 0 评论 -
顶点(vertexs) 图元(primitives) 片元(fragments片断) 像素(pixels)
顶点(vertexs) 图元(primitives) 片元(fragments,又叫片断) 像素(pixels) 阶段1. 顶点 ->图元几何顶点被组合为图元(点,线段或多边形),然后图元被合成片元,最后片元被转换为帧缓存中的象素数据。阶段2. 图元 ->片元图元被分几步转换为片元:图元被适当的裁剪,颜色和纹理数据也相应作出必要的调整,相关的坐标被转换转载 2014-09-15 12:28:56 · 774 阅读 · 0 评论 -
SurfaceView 和View 的应用场景
摘要 一、游戏的应用上,根据游戏的特点,一般分为两类: a. 被动更新画面的。比如棋类,这种用view就好。因为画面的跟新依赖于onTouch来更新,可以直接使用invalidate.因为这种情况下,这一次Touch和下一次Touch需要的时间比较长些,不会产生 影响。 b.主动更新 一、游戏的应用上,根据游戏的特点,一般分为两类:a. 被动更新转载 2014-09-16 13:42:26 · 832 阅读 · 0 评论 -
SurfaceView 双缓冲应用
SurfaceView 双缓冲应用转载 2014-09-16 13:47:11 · 395 阅读 · 0 评论 -
AIDL——实现机制浅析
aidl是 Android Interface definition language的缩写,它是一种进程通信接口的描述,通过sdk解释器对器进行编译,会把它编译成java代码在gen目录下,类路径与aidl文件的类路径相同。 3.aidl接口package com.cao.android.demos.binder.aidl; import com.cao.android.de转载 2014-09-16 19:40:04 · 424 阅读 · 0 评论 -
传递复杂数据类型的远程Service
远程服务往往不只是传递java基本数据类型。这时需要注意android的一些限制和规定:android支持String和CharSequence直接跨进程传送如果需要在aidl中使用其他aidl接口类型,需要import,即使是在相同包结构下;android允许传递实现Parcelable接口的类,需要import;android支持集合接口类型List和Map,但是有一些限制,元素必须是转载 2014-09-16 20:04:35 · 458 阅读 · 0 评论 -
notifyDataSetChanged() 动态更新ListView
有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView。今天的例子就是通过Handler AsyncTask两种方式来动态更新ListView.从今天起,每次学习的源代码都会打包上传,方便各位同学学习,注册帐号即可下载。布局main.xml:转载 2014-09-04 13:08:38 · 423 阅读 · 0 评论 -
Android性能优化总结
前言性能优化本身是一个很大的主题,涵盖程序的方方面面,任何不慎的操作,都有可能对性能造成比较大的影响,要知道程序的性能是可以累加的,多处的性能低下,会影响整体的性能,其后果可能也是多方面的,本文总结了目前工作中,所需要知道的大部分性能优化点,一部分个人总结,一部分来自于互联网。但整体上,都是提纲性的,并没有列出具体的实例,因为写这方面主题的达人实在太多了,所以,我得站在巨人的肩膀上,具体细转载 2014-09-18 00:55:53 · 378 阅读 · 0 评论 -
Activity intent经常使用的 FLAG 集合
首先简单说下Task和Activity的关系。 Task就像一个容器,而Activity就相当与填充这个容器的东西,第一个东西(Activity)则会处于最下面,最后添加的东西(Activity)则会在最上面。从Task中取出东西(Activity)是从最顶端取出,也就是说最先取出的是最后添加的东西(Activity),以此类推,最后取出的是第一次添加的Activity,而Activit转载 2014-09-10 21:22:36 · 372 阅读 · 0 评论 -
Dalvik VM (DVM) 与Java VM (JVM)的区别
1、Dalvik 和标准 Java 虚拟机(JVM)的首要差别 Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。 JVM字节码中,局部变量会被放入局部变量表中,继而被压入堆栈供操作码进行运算,当然JVM也可以只使用堆栈而不显式地将局部变量存入变量表中。Dalvik字节码中,局部变量会被赋给65536个可用的寄转载 2014-09-10 21:33:41 · 466 阅读 · 0 评论 -
Android内存泄漏
1.资源对象没关闭造成的内存泄漏描述:资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于java虚拟机内,还存在于java虚拟机外。如果我们仅仅是把它的引用设置为null,而不关闭它们,往往会造成内存泄漏。因为有些资源性对象,比如SQLiteCursor(在析构函数finalize转载 2014-09-10 16:22:17 · 405 阅读 · 0 评论 -
EditText显示图片
[java] view plaincopy//连续的字符串,长度不可变 SpannableString ss = new SpannableString("icon"); //得到要显示的图片资源 Drawable d = getResources().getDrawable(R.drawable.i转载 2014-09-05 12:02:58 · 725 阅读 · 0 评论 -
Fragment生命周期
一Fragment的生命周 二,与Activity生命周期的对比转载 2014-09-05 16:12:40 · 321 阅读 · 0 评论 -
Android开源项目 分类 便于查看
Android开源项目第一篇——个性化控件(View)篇主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Activity Animation等等。转载 2014-09-07 21:13:17 · 591 阅读 · 0 评论 -
Android面试题集锦
汇总自己经历了一些来自百度,360,淘宝,腾讯,高通中国,htc上海的电话面试及现场面试,还有笔试相关题目 百度:百度在北京中关村上地七街奎科科技大厦,不大但是很安静的一个办公地点。 百度技术面试分为两轮,第一轮基础技术面试,一般为项目负责人,主要考察基本知识及知识广度,第二轮面试一般为部门负责人,主要考察技术深度。基础面试感觉个人答的还不错,主要询问了一些关于android基本知识的转载 2014-09-07 10:14:58 · 314 阅读 · 0 评论 -
android 常见面试题以及答案
1. 请描述下Activity的生命周期。2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?3. 如何将一个Activity设置成窗口的样式。(Edited by Sodino)4. 如何退出Activity?如何安全退出已调用多个Activity的Application?5. 请介绍下Android中常用的五种转载 2014-09-07 10:13:48 · 632 阅读 · 0 评论 -
Android OpenGL ES 开发教程 从入门到精通
Android OpenGL ES 简明开发教程Android OpenGL ES 简明开发教程一:概述Android OpenGL ES 简明开发教程二:构造OpenGL ES ViewAndroid OpenGL ES 简明开发教程三:3D绘图基本概念Android OpenGL ES 简明开发教程四:3D 坐标变换Android OpenGL ES 简明开发教程五:添加颜色And转载 2014-09-07 10:14:43 · 500 阅读 · 0 评论 -
ListView优化
1.利用ListView自身的缓存机制,他会缓存条目中的一个条目item,当listview第一屏显示完成之后,就会出现一个缓存条目,其实就是BaseAdapter里面的public View getView(int position, View convertView, ViewGroup parent)。2.减少findViewById()的次数,findViewById是一个相对比较原创 2014-09-07 15:41:15 · 342 阅读 · 0 评论 -
View.setTag()的作用
Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if (convertView == null) { La原创 2014-09-07 23:22:13 · 431 阅读 · 0 评论 -
Android之IphoneTreeView带组指示器的ExpandableListView
码PinnedHeaderListView,以及网上各位大侠的源码,封装了一个效果最好,而且使用最简单的IphoneTreeView,下面先看看效果图: 首先让我们看看封装得比较完善的IphoneTreeView:[java] view plaincopypublic class IphoneTreeView转载 2014-08-26 23:01:29 · 1245 阅读 · 1 评论 -
Android 自定义控件
在xml 文件里定义控件的属性,我们已经习惯了android:attrs="" ,那么我们能不能定义自己的属性能,比如:test:attrs="" 呢?答案是肯定的. 好了我就不卖关子了,直接进入主题。大致以下步骤: 一、 在res/values 文件下定义一个attrs.xml 文件.代码如下: [java] view转载 2014-08-27 14:59:49 · 470 阅读 · 0 评论 -
Intent 和 Intent Filter
Android 应用程序中有三大核心组件: Activity, Service, Broadcast Receiver 都是通过被称之为意图的消息运行。Intent messaging is a facility for late run-time binding between components in the same or different applications. 意图本身一个 In转载 2014-09-10 16:41:21 · 306 阅读 · 0 评论 -
IntentService的原理及使用
在Android开发中,我们或许会碰到这么一种业务需求,一项任务分成几个子任务,子任务按顺序先后执行,子任务全部执行完后,这项任务才算成功。那么,利用几个子线程顺序执行是可以达到这个目的的,但是每个线程必须去手动控制,而且得在一个子线程执行完后,再开启另一个子线程。或者,全部放到一个线程中让其顺序执行。这样都可以做到,但是,如果这是一个后台任务,就得放到Service里面,由于Service和Ac转载 2014-09-10 16:49:55 · 471 阅读 · 0 评论 -
Activity的四种launchMode
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。Activity一共有以下四种lau转载 2014-09-10 21:23:53 · 347 阅读 · 0 评论 -
Android中的布局优化方法
merge,ViewStub,include在布局优化中的作用。1、merge 顾名思义,就是合并、融合的意思。使用它可以有效的将某些符合条件的多余的层级优化掉。使用merge的场合主要有两处: (1) 自定义View中使用,父元素尽量是FrameLayout,当然如果父元素是其他布局,而且不是太复杂的情况下也是可以使用的 (2) Activit转载 2014-10-01 10:07:21 · 442 阅读 · 0 评论