- 博客(36)
- 收藏
- 关注
原创 Android中设计模式的比较
Android中设计模式的比较安卓开发中常用的设计的模式有MVC、MVP、MVVM、Flux。1.MVCmvc是比较常用的模式,M代表Model,即业务逻辑的处理,V代表View,即显示层,C代表Controller,即控制层。在安卓开发中,activity用于页面的展示,即View层,但是一些业务逻辑控制处理也会写在activity中,即造成了activity类的臃肿,有点不太符合MVC模式,所
2016-04-26 15:33:04
1189
原创 android应用程序框架层创建的应用程序进程学习
参考http://blog.youkuaiyun.com/luoshengyang/article/details/6766010Android应用程序框架层创建的应用程序进程有两个特点:进程的入口是ActivityThread.main进程天然支持Binder进程通信机制1.ActivityManagerService.startProcessLocked2.Process.star
2015-04-14 23:08:04
953
原创 Android应用程序安装过程源代码学习
参考http://blog.youkuaiyun.com/luoshengyang/article/details/6767736Android应用程序启动过程中,会启动一个应用程序管理服务PackageManagerService,这个服务负责扫描系统特定的目录,找到里面的应用程序文件,然后对这些文件进行解析,得到相关信息,完成应用程序的安装过程。1.SystemServer.main2
2015-04-14 23:06:30
513
原创 Android默认Home应用程序(Launcher)的启动过程学习
参考http://blog.youkuaiyun.com/luoshengyang/article/details/67683041.SystemServer.main2.SystemServer.init13.SystemServer.init24.ServerThread.run5.ActivityManagerService.main6.PackageManagerService
2015-04-14 23:04:55
611
原创 Activity在MainActivity中启动流程跟踪
在代码中启动一个Activity流程即在一个MainActivity中启动另外一个Activity:1.Activity.startActivity2.Activity.startActivityForResult3.Instrumentation.execStartActivity4.ActivityManagerProxy.startActivity5.ActivityMa
2015-04-13 11:01:13
746
转载 ActivityManager API学习
android.app包,含有6个内部类:MemoryInfoProcessErrorStateInfoRecentTaskInfoRunningAppProcessInfoRunningServiceInfoRunningTaskInfo 先从ActivityManager API下手。ConstantsMETA_HOME_ALTERNATE
2015-04-01 23:21:00
2241
原创 ActivityManager系统服务源码分析
ActivityManager作用:与正在运行的Activity进行交互,获取系统中所有运行的Activity相关信息,例如Task Memory Service。如下所示:获取正在运行的服务信息,ActivityManagerNative.getDefault().getServices()调用的是代理类ActivityManagerProxy中的getServices方法。Activi
2015-04-01 22:30:10
1366
原创 中文转拼音的学习
在开发中,有时会遇到中文汉字转换成拼音的情况,例如通过录中,这时就要使用第三方jar包,即pinyin4j.jar。/** * 输出格式 * * @return */ private static HanyuPinyinOutputFormat getDefaultOutputFormat() { HanyuPinyinOutputFormat format = new
2015-03-19 14:29:45
377
转载 Android性能优化总结
前言性能优化本身是一个很大的主题,涵盖程序的方方面面,任何不慎的操作,都有可能对性能造成比较大的影响,要知道程序的性能是可以累加的,多处的性能低下,会影响整体的性能,其后果可能也是多方面的,本文总结了目前工作中,所需要知道的大部分性能优化点,一部分个人总结,一部分来自于互联网。但整体上,都是提纲性的,并没有列出具体的实例,因为写这方面主题的达人实在太多了,所以,我得站在巨人的肩膀上,具体细
2015-03-12 22:33:06
326
原创 android应用性能优化注意点
1.http用gzip压缩,设置连接超时时间和响应超时时间http请求按业务需求,分为是否可以缓存和不可缓存,那么在无网络环境下,仍通过缓存的httpResponse浏览部分数据,实现离线阅读2.listview优化复用convertview异步加载图片快速滑动列表时(scroll_state_fling),item的图片或者需要消耗资源的view可以不显示处理,在scro
2015-03-12 22:33:05
420
原创 Android中相册的数据结构
Android中file表为文件表,存储中系统的文件信息,结构如下:images表是从file表中构成的视图。 images: _id: _data:图片的绝对路径 _size:文件大小,单位byte _display_name:文件名 mime_type:文件类型 title:不带扩展的文件名 date_added:添加到数据库的时间
2015-03-12 14:05:57
1109
原创 获取SIM中的联系人
package com.android.test; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import an
2015-03-12 11:18:22
415
转载 Android联系人表结构学习
从Android 2.0(API Level 5)开始,Android平台提供了一个改进的Contacts API,以适应一个联系人可以有多个帐户的需求,比如说手机通讯录和GMAIL通讯录,两个通讯录中的两条记录可以是同一个人。新的Contacts API主要是由ContactsContract及其相关的类来管理,旧的API(android.provider.Contacts)已不赞成使用,但为了
2015-03-12 11:06:39
853
原创 android中短信模块学习
android短信常用到的表结构如下:Sms表:_id:Integerthread_id:Integer 同一会话中他们的值相同,也就是说通过thread_id来确定谁和谁在聊天address:Text 发送人地址,即手机号person:Integer 发件人,如果发件人在通信录,则显示姓名,陌生人为nulldate:Integer 接收或发送的时间date_s
2015-03-11 14:43:12
680
原创 Android学习笔记(二)
Android Cloud to Device Messaging(C2DM)服务为开发人员提供了一种根据服务器推送创建事件驱动应用程序的有效机制。每个Android应用程序都运行在他自己的Dalvik实例的一个进程中,他把内存管理和进程管理的所有工作都交给了Android运行时进行处理,Android运行时在必要的时候会暂停或关闭进程,从而有效管理资源。Andro
2015-03-10 21:43:33
1999
原创 Android学习笔记(一)
保留字:类名,方法名,变量名,只能是字母数字_,不能以数字开头关键字:基本数据类型:boolean,char,byte,short,int,long,float,doubleJava中数据运算都是需要转换成int类型的,而且栈中是没有byte类型的引用类型:所有类,接口,数组,枚举,标注public static void arraycopy(Object src,in
2015-03-10 21:39:51
665
原创 ThinkPHP学习笔记
thinkphp中的配置文件:惯例配置>项目配置>调试配置>分组配置>读取配置>动态配置>扩展配置惯例配置:是系统内置的一个配置文件 Conf/convention.php项目配置:位于项目配置文件目录Conf下面,文件名是config.php调试配置:在开启调试模式的状态下,可以给项目设置不同的应用状态,并加载不同的项目配置文件但是无论如何都是导入系统默认的调试配置文件,位于系统
2015-03-10 21:39:27
432
原创 PHP学习笔记
数组: php中的数组分为索引数组和关联数组 索引数组的索引值是整数,与其他语言类似。关联数组的索引值是字符串,与其他语言不通。 each():参数是一个数组,可以讲数组从第一个开始分解,返回的是一个数组,$arr=each(array("a"=>"b"));并将所以 向下移动,若最后没有则返回false,$arr=array(0=>"a",'key'=>'a',1=>
2015-03-10 21:38:23
297
原创 Linux学习笔记
linux常用命令: ls: 英文原意 list 命令所在路径:/bin/ls 执行权限用户:所有用户 功能:显示目录文件 语法: ls [-ald] [文件或目录] -a 显示所有文件 all -l 详细信息显示 long -d 查看目录属性 di
2015-03-10 21:36:33
387
原创 android.provider.Settings中常见的Action
在APP运行过程中,有些功能并未开启,例如网络,GPS等,所以需要跳转到设置页面,方法如下: Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent,0); 打开SDK,打开android.provider.Sett
2015-03-10 21:34:44
1079
原创 Android创建快捷方式
Android中生成快捷方式: public CreateShut(Activity activity) { // intent进行隐式跳转,到桌面创建快捷方式 Intent addIntent = new Intent( "com.android.launcher.action.INSTALL_SHORTCUT"); //不允许重建 addIntent.putExtr
2015-03-09 16:35:19
350
转载 Android ViewFlow的学习
完成这个例子的步骤:1.下载ViewFlow的源码,然后将类ViewFlow放在自己的工程的src的某个包下。2.下载的源码里有2个工程view flow,viewflow-example。将view flow工程里的attr3.布局文件如下: android:id="@+id/home_layout" androi
2015-03-09 16:18:25
523
原创 NanoHTTPD学习
NanoHTTPD是一轻型服务器,可以再Android手机中构建一web服务器。NanoHTTPD是一个开源的项目,下面我们对其流程进行分析: public NanoHTTPD( int port, File wwwroot ) throws IOException { myTcpPort = port; this.myRootDir = wwwroot; myServerSoc
2015-03-09 14:34:55
1212
转载 严苛模式(StrictMode)
原文地址:http://blog.youkuaiyun.com/brokge/article/details/8543145Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含
2015-03-06 15:59:18
245
原创 Android SurfaceView的简单学习
SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。 surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见
2015-03-06 14:52:29
460
原创 Android中Camera的学习
Android中照片分为两种方式,一种是通过Intent调用第三方应用,另外一种是直接调用Camera API,构建自定义的照相机,我们着重学习一下这种方式。Camera类:位于android.hardware包下,这个类就是获取Camera服务,定制Camera功能。拍照流程:1、设置SurfaceView,以及SurfaceView.Callback。2、在SurfaceHol
2015-03-06 14:42:00
415
原创 Android定位功能学习
Android中定位功能的API位于android.loaction包下,类与接口如下:接口:GpsStatus.Listener:监听Gps状态的接口GpsStatus.NmeaListener:监听从GPS里接口Nmea-o183信息LocationListener:监听位置信息类:Address:描述地址的类Criteria:用于描述Location Provid
2015-03-05 15:02:50
400
原创 Andorid中wifi的学习
Android提供了android.net.wifi包供我们操作Wifi。首先介绍一下包里面的几个类:WifiManager:提供了管理Wifi连接的大部分APIScanResult:已检测出的接入点(包括接入点的地址、名称、身份认证、频率、信号强度)WiFiConfiguration:Wifi连接的网络配置WifiInfo:已连接上的无线连接服务(包括接入点、网络连接状态、隐
2015-03-05 13:34:27
394
原创 Service中onStartCommand的返回值问题
Android开发中,每次调用startService(Intent)时都会调用service对象的onStartCommand(Intent intent,int flag,int startId)方法,其返回值是一个常量,有四种类型: /** * Constant to return from {@link #onStartCommand}: if this servic
2015-03-04 10:39:44
360
原创 Android 进程类别
前台进程(foreground process):该进程包含正在与用户交互的界面组件,或者,该进程中有服务组件和用户交互界面组件想绑定,或者该进程中有服务组件的onstart等方法正被执行,或者该进程中包含前台服务组件,即该服务组件调用过Service.startForeground函数,或者该进程中有触发器组件onReceive方法正在被执行。可视进程(visible process):该进
2015-03-04 09:51:56
491
原创 界面组件的运行模式
Android界面组件的运行模式包括standard、singleTop、singleTask、singleInstance。standard:系统每次调用组件时就会产生新的组件对象。singleTop:如果被调用的界面组件与该任务栈顶组件的类型一致,那么系统就不会再为在界面组件构造新的对象,而是直接使用栈顶对象。适用于与用户交互时保持信息更新的界面组件,比如浏览器的书签,联系人搜索结果界
2015-03-03 15:21:30
372
原创 Intent的学习
Intent对象的作用和构成Android意图机制最核心的设计思想就是引入了组件管理服务作为连接组件的管理者。该服务可以通过组件的配置信息了解系统中每个组件的类别和功能,从而帮助调用组件寻找符合其需求的实现组件,将调用者与是闲着彻底解耦。Intent的作用首先,Intent对象是组件间通信信息的载体。它封装了调用组件提供的指令和数据,通过组件管理服务序列化传递给实现组件,实现组件可以利
2015-03-03 14:09:16
332
原创 Android监听USB插拔事件
Android监听USB插拔事件有两种方式:一种是在Mainifest.xml中注册 android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:
2015-03-03 11:11:38
2191
原创 设计模式之装饰模式
装饰模式的定义:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。装饰模式的示例图如下:如图所示,主要包括四个部分:1、Component抽象组件,是一个接口或者抽象类,就是定义我们最核心的对象,也就是最原始的对象。2、ConcreteComponent具体组件,最核心、最原始、最基本的接口或抽象类的实现,即Component的实现。3、De
2015-03-02 15:39:34
397
原创 界面组件开发
界面组件都是android.app.Activity类的子类型。实现界面组件需要派生Activity类或其子类,并在配置文件中描述该组件的信息。1、构造界面2、处理交互事件界面交互事件处理大致上有两类。一类是当前界面的全局事件,可以通过重载Activity中特定的方法来实现,比如onKeyDown函数。另一类则是和具体控件相关的交互时间。Android的控件采用了观察者模式,可以通过添
2015-03-02 14:15:39
498
原创 Android组件模型解析
一、基于Mashup的应用设计 Android中的Mashup是将应用切分成不同类别的组件,通过统一的定位模型和接口标准将他们整合在一起,来共同完成任务。在Mashup的概念下构造Android应用,有三个基本要素:组件(Component)、连接和配置。1、组件组件就是有特定功能和接口规范的实现单元。每类组件都有着不同的设计目标,或者负责界面展示,或者负责后台服务,或者负责提供数
2015-03-02 13:28:04
824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人