BASE
hqdoremi
这个作者很懒,什么都没留下…
展开
-
ContentProvider
一、Content Provider基本概念 1、ContentProvider为存储和获取数据提供了统一的接口。ContentProvide对数据进行封装,不用关心数据存储的细节。使用表的形式来组织数据。2、使用ContentProvider可以在不同的应用程序之间共享数据。 3、Android为常见的一些数据提供了默认的ContentProvider(包括音频、转载 2013-07-29 10:56:36 · 478 阅读 · 0 评论 -
三次握手 四次挥手
TCP/IP 状态机,如下图所示: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 (SYN包表示标志位syn=1,ACK包表示标志位ack=1,SYN+ACK包表示标志位syn=1,ack=1) (1) 第一次握手:建立连接时,客户端A发送SYN包(SEQ_NUMBER=j)到服务器B,并进入SYN_SEND状态,等待服转载 2014-02-17 18:03:07 · 512 阅读 · 0 评论 -
onSaveInstanceState和onRestoreInstanceState
当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候。 注意上面的双引号,何为“容易”?言下之意就是该activity还没有被销毁,而仅仅是一种可能性。这种可能性有哪些?通过重写一个activity的所有生命周期的onXXX方法,包括onSaveInstanc转载 2014-02-24 10:37:05 · 716 阅读 · 0 评论 -
屏幕旋转
个人学习笔记:很多时候会用到屏幕旋转时需要对一些数据进行保存,例如当横竖屏区切换时要保存先前屏幕的一些数据和状态,个人认为有两个方法提供使用:1.当前的Activity不销毁:那么就需要在AndroidManifest.xml配置文件中的Activity标签下面添加:android:configChanges="orientation|keyboardHidden"转载 2014-02-24 10:55:50 · 617 阅读 · 0 评论 -
Gson
使用ava关键字transient Java代码 private transient int value = 3; 在序列化的时候value不会生成到json字符串中。 使用Gson提供的注解@Expose Java代码 @Exclude private String value;转载 2014-02-27 16:58:23 · 1702 阅读 · 0 评论 -
Serizlizable Parcelable
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。一 序列化原因:1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。 二 至于选取哪种可参考下面的原则:1.在使用内存的时候,Parcelable 类比Serializ转载 2014-03-02 18:11:19 · 1156 阅读 · 0 评论 -
Android系统框架
从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是 用Java语言编写的,并且这些应用程序都是转载 2014-03-02 17:37:19 · 555 阅读 · 0 评论 -
Activity LaunchMode & TaskAffinity
设计两个Activity,分别称为A,B,每个Activity上面都放置两个按钮,一个启动A,一个启动B。 界面如下:(上面的一行文字用来识别是在A界面还是在B界面) 在代码中实现onCreate(): Java代码 Button btnA = (Button)findViewById(R.id.btnA); btnA.se转载 2012-10-25 16:46:23 · 479 阅读 · 0 评论 -
签名
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字转载 2014-03-02 21:53:08 · 617 阅读 · 0 评论 -
屏幕适配
本文将告诉你如何让你的应用程序支持各种不同屏幕大小,主要通过以下几种办法:让你的布局能充分的自适应屏幕根据屏幕的配置来加载合适的UI布局确保正确的布局应用在正确的设备屏幕上提供可以根据屏幕大小自动伸缩的图片使用 "wrap_content" 和 "match_parent" 为了确保你的布局能够自适应各种不同屏幕大小,你应该在布局的视图中使用"wrap_conten转载 2014-04-25 09:48:52 · 870 阅读 · 0 评论 -
SQLite
一、SQLite介绍SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资 源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语 言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mys转载 2013-07-29 11:27:53 · 1258 阅读 · 0 评论 -
常用ADB命令
1、列出当前连接的所有设备adb devices2、安装apkadb -s emulator-5556 install helloWorld.apk如果有多个设备时,用-s 设备序号 来指定设备adb install -r helloWorld.apk -r 表示强制安装3、卸载apkadb -s emulator-5556原创 2013-08-13 16:06:14 · 722 阅读 · 0 评论 -
UML
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特转载 2013-09-12 10:08:56 · 504 阅读 · 0 评论 -
正则表达式
1. 正则表达式规则1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,转载 2013-09-12 11:50:59 · 536 阅读 · 0 评论 -
Service
1、Service的种类 按运行地点分类:类别区别 优点缺点 应用本地服务(Local)该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。 主转载 2013-07-30 11:55:07 · 638 阅读 · 0 评论 -
进程间通信
由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content P转载 2013-03-26 11:40:46 · 831 阅读 · 0 评论 -
View的绘制和invalidate
整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘(draw),其框架过程如下:步骤其实为host.layout()接下来温习一下整个View树的结构,对每个具体V转载 2013-05-22 16:59:12 · 3185 阅读 · 0 评论 -
自定义控件
1、在values目录下新建attrs.xml文件,在这之中定义属性。 2、使用时xml中添加域说明 xmlns:app="http://schemas.android.com/apk/res/com.example.android.apis" 包名<LinearLayout xmlns:a转载 2012-12-13 15:46:13 · 471 阅读 · 0 评论 -
Java引用传递&值传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。Java参数,不管转载 2013-08-07 14:42:40 · 437 阅读 · 0 评论 -
排序算法
1. 选择排序选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到的最小值与 i 指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最大值的子流程,所以人们形象地称之为选择排序。举个实例来看看:初始: [38, 17, 16, 16, 7, 31, 39, 32, 2, 11]i = 0:转载 2013-08-07 15:05:47 · 972 阅读 · 0 评论 -
Binder AIDL
Activity和Service传递数据如果你的service仅被自己的应用使用并且不需跨进程工作,那么你可以实现你自己的Binder类使得你的客户端能直接使用service的公开接口方法.注:这只在客户端和service位于同一应用和同一进程中时才能工作,其实大多数都是这种情况.例如,在一个音乐应用需要把它的activity绑定到它自己的播放音乐的后台service时,这转载 2013-01-25 15:58:33 · 1806 阅读 · 0 评论 -
broadcast
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。下面将详细的阐述如何发送Broadcast和使用BroadcastReceiver过滤接收的过程: 首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一转载 2013-03-26 15:34:23 · 901 阅读 · 0 评论 -
Home&Back onPause onStop等执行顺序
Activities是由Activity stack管理的。当一个新的Activity被启动,它就会处于stack的top位置,成为当前运行的Activity。而前一个Activity依然保留在stack里面,当需要调用这个Activity时就会回到stack的top位置成为当前运行的Activity。 一个Activity有4个基本状态: 1. active /转载 2012-10-25 16:58:42 · 730 阅读 · 0 评论 -
Intent(action,data,type,schema,category,flag)
一、 Intent 作用 Intent 是一个将要执行的动作的抽象描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。比如说调用 startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的 BroadcaseReceiver, 再或者由startService()/bin转载 2012-10-25 10:44:20 · 2044 阅读 · 0 评论 -
经典算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的转载 2013-08-07 16:53:52 · 894 阅读 · 0 评论 -
Java内存
Java内存管理:深入Java内存区域 本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”转载 2015-01-15 13:32:56 · 591 阅读 · 0 评论