哨兵

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年9月12日

摘要: Binder用于完成进程间通信,它是一种工作在Linux层面的架构,这种架构提供了服务端接口,Binder驱动,客户端接口三个模块服务端,一个Binder服务端实际上就是一个Binder对象,该对象一旦创建就会启动一个线程,用于接收Binder驱动发送的消息,收到消息后会执行到Binder对象的on... 阅读全文
posted @ 2014-09-12 22:12 哨兵 阅读(224) 评论(0) 推荐(0)

摘要: Framework框架包含三个主要部分:服务端,客户端和Linux驱动服务端包含两个重要类:WindowManagerService(Wms):作用是为所有的应用程序分配窗口,并管理这些窗口,包括分配窗口的大小,调节窗口的叠放次序,隐藏或者显示窗口,此处的窗口并不是Window类,而是一个View或... 阅读全文
posted @ 2014-09-12 22:11 哨兵 阅读(300) 评论(0) 推荐(0)

摘要: Android test suites基于Junit,可以直接使用Junit测试不使用android api的class,也可以使用android的Junit extensions测试android componentandroid的Junit extensions提供了基于component的测试... 阅读全文
posted @ 2014-09-12 22:09 哨兵 阅读(636) 评论(0) 推荐(0)

摘要: 与windows平台不同,Android应用程序不能控制自己的生命周期,应用程序组件必须监听应用程序的状态的变化并作出适当反应,特别要注意为随时被终止做好准备默认情况下,每个Android应用程序都是通过他们自己的进程运行,每个进程都运行在独立的Dalvik实例中,每个应用程序的内存和进程管理都是由... 阅读全文
posted @ 2014-09-12 22:06 哨兵 阅读(211) 评论(0) 推荐(0)

摘要: 由于一个程序所有Activity中去获取Application对象,得到的都是一个对象,所以可以利用Activity实现Activity之间的通信 阅读全文
posted @ 2014-09-12 22:05 哨兵 阅读(173) 评论(0) 推荐(0)

摘要: 一个应用程序中包含多少个Context对象:一个Activity或者Service就是一个Context,它们都间接继承自Context,应用程序中有多少个Activity或者Service就会有多少个Context但无论从哪个Activity调用getResources方法返回的都是同一个Reso... 阅读全文
posted @ 2014-09-12 22:04 哨兵 阅读(202) 评论(0) 推荐(0)

摘要: SQLite内部只支持NULL,INTEGER,REAL,TEXT,BLOB这5数据类型,但是SQLite可以接受svarchar(n),char(n),decimal(p,s)等数据类型,SQLite在运算或者保存时会将他们转换成上述5种类型SqLiteDatabase代表一个数据库,常用方法如下... 阅读全文
posted @ 2014-09-12 22:02 哨兵 阅读(248) 评论(0) 推荐(0)

摘要: Android提供了Preference(配置),File(文件),SQLite数据和网络几种数据存取方式 SharedPreference提供了一种轻量级的数据存取方法,应用场合主要是比较少的配置信息,它以键-值对的方式将数据存储在一个XML配置文件中,xml文件路径为/data/data//s... 阅读全文
posted @ 2014-09-12 22:01 哨兵 阅读(217) 评论(0) 推荐(0)

摘要: Android资源分两类:无法通过R清单类访问的原生资源,保存在assets目录下,R资源类的路径:..\build\generated\source\r\debug\工程名可以通过R清单类访问的原生资源,保存在res目录下Resources类:资源管理类Context.getResources()... 阅读全文
posted @ 2014-09-12 21:57 哨兵 阅读(281) 评论(0) 推荐(0)

摘要: ContentProvider:不同应用之间进行数据交换的标准API,当一个应用程序要把自己的数据暴露给其他应用时,就可以通过ContentProvider来实现,其他应用程序通过ContentResolver操作ContentProvider暴漏的数据应用程序通过ContentProvider暴露... 阅读全文
posted @ 2014-09-12 21:55 哨兵 阅读(196) 评论(0) 推荐(0)

摘要: Broadcast Receiver:接听用户程序或系统程序所发出的broadcast intent,属于系统级别的监听器,拥有自己的进程,可以使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息,在应用程序中实现Broadcast Receiver来监听和响应这些广播的In... 阅读全文
posted @ 2014-09-12 21:54 哨兵 阅读(200) 评论(0) 推荐(0)

摘要: WindowManager:WindowManager服务是全局的唯一的.它会将用户在屏幕上的操作发送给界面上的各个Window,Activity会将顶层控件注册到WindowManager中。WindowManager可以将View直接添加到屏幕最上层显示,也可以从屏幕删除View,不需要将Vie... 阅读全文
posted @ 2014-09-12 21:53 哨兵 阅读(461) 评论(0) 推荐(0)

摘要: 跨进程调用service, AIDL定义进程之间的通信接口,AIDL文件语法和定义几个java接口语法类似,只不过扩展名是.aidl IDE会自动为接口提供实现,在接口中会定义一个名为Stub的内部static类,实现定义的接口,继承Binder类,Binder实现了IBinder接口AIDL se... 阅读全文
posted @ 2014-09-12 21:51 哨兵 阅读(173) 评论(0) 推荐(0)

摘要: Service组件一直在后台运行,没有用户界面,也需要再AndroidManifest.xml中配置Service,Android系统本身提供了大量Service组件,用于访问AndroidService的生命周期:Service类中定义了一系列方法,如:onBind:是必须实现的一个方法,返回一个... 阅读全文
posted @ 2014-09-12 21:50 哨兵 阅读(308) 评论(0) 推荐(0)

摘要: Intent可以启动Activity,Service,Broadcast,Intent有以下几部分组成:动作,数据,分类,类型,组件,扩展信息,Intent在寻找目标组件时有两种方法:第一通过组件名称直接决定,第二通过Intent Filter过滤指定. Intent提供了多个重载的方法来携带额外的数据,最终数据都是放在Bundle中: putExtras(Bundle data):向In... 阅读全文
posted @ 2014-09-12 21:42 哨兵 阅读(209) 评论(0) 推荐(0)

摘要: GestureDetector:手势监听类,通常在View的setOnTouchListener方法中设置TouchListener,在TouchListener的onTouch函数中把MotionEvent 触屏事件交给GestureDetector的onTouchEvent处理,GestureD... 阅读全文
posted @ 2014-09-12 21:40 哨兵 阅读(280) 评论(0) 推荐(0)

摘要: Android提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理. 基于监听器:View class中有许多事件监听器要实现的接口如View.OnClickListener,单击事件监听器。 通常使用内部类或者匿名类定义事件监听器,当某个事件监听器需要被多个GUI界面共享,则考虑使用外部类的形式实现事件监听器类。直接绑定到标签的事件函数 不是定在事件源的类中,而是在Activi... 阅读全文
posted @ 2014-09-12 21:38 哨兵 阅读(215) 评论(0) 推荐(0)

摘要: 菜单种类: 选项菜单(Option Menu):点击手机的Menu键才会显示应用关联的菜单 上下文菜单(ContextMenu):当用户一直按住某个组件时,该组件所关联的上下文菜单就显示出来,不支持菜单快捷键和图标 子菜单(SubMenu):包含多个菜单项,点击会显示,不支持菜单项图标,不支持嵌套子菜单 常用菜单命令: MenuItem add(...):添加菜单项 SubMenu ... 阅读全文
posted @ 2014-09-12 21:36 哨兵 阅读(279) 评论(0) 推荐(0)

摘要: ActionBar:位于标题栏的位置,要关闭ActionBar 可以配置android:theme=”@android:style/Theme.Holo.NoActionBar”,也可以调用Actionbar的Hide()函数.ActionBar提供了如下功能: 显示选项菜单的菜单项(将菜单项显示成Action Item) 使用程序图标作为返回Home主屏或向上的导航操作 提供交互式Vi... 阅读全文
posted @ 2014-09-12 21:34 哨兵 阅读(350) 评论(0) 推荐(0)

摘要: Layout_x:表示控件与父控件之间的关系,不带layout的属性表示控件中文本的格式带Layout_weight的控件width计算方法:首先计算剩余空间,剩余空间可以是整可以是负,剩余空间=屏幕width-所有控件所需要的width,然后剩余空间乘以weight所占的比例再加到width上就是... 阅读全文
posted @ 2014-09-12 21:30 哨兵 阅读(249) 评论(0) 推荐(0)

摘要: Android提供了对话框支持,包括如下类别:AlertDialog:功能最丰富,应用最广泛的对话框ProgressDialog:进度条对话框DataPickerDialog:日期选择对话框TimePickerDialog:事件选择对话框自定义Dialog//Style.xml代码 使用AlertD... 阅读全文
posted @ 2014-09-12 21:25 哨兵 阅读(231) 评论(0) 推荐(0)

摘要: 当应用启动,系统会创建一个主线程,也叫UI线程,系统对每个UI组件的调用事件都在UI线程中分发出去,而不会为每个UI单独建立线程,这种单线程模型有两个准则: 不要阻塞UI线程 不能在UI线程之外访问Android UI 下面方法可以将执行放在UI线程,但不常用 Activity.runOnUiThread(Runnable) View.post(Runnable) View.pos... 阅读全文
posted @ 2014-09-12 21:21 哨兵 阅读(201) 评论(0) 推荐(0)

摘要: Notification是显示在手机状态栏的通知,状态栏位于屏幕最上方,一般用于显示网络状态,电池状态,事件等,程序使用NotificationManager服务来发送Notification通知,步骤如下:调用getSystemService(NOTIFICATION_SERVICE)获取系统的N... 阅读全文
posted @ 2014-09-12 21:20 哨兵 阅读(149) 评论(0) 推荐(0)

摘要: Adapter接口派生了ListAdapter和SpinnerAdapter接口,ListAdapter为AbsListView提供列表项,SpinnerAdapter为AbsSpinner提供列表项,Adapter常用的实现类如下: ArrayAdapter:将数组活列表中的多个值包装成列表项,每个列表项只能是TextView或者其子类 ArrayAdapter String []arr... 阅读全文
posted @ 2014-09-12 21:18 哨兵 阅读(260) 评论(0) 推荐(0)

摘要: Fragment类:Android 3.0引入,代表Activity的子模块,有自己的生命周期,但也受Activity生命周期的控制,接受自己的输入事件。当Activity处于活动状态时,程序员可以通过方法独立操作Fragment,对于大多数Fragment会重写下面几个方法: onAttach:当Fragment被添加到Activity时被调用,该方法只会被调用一次 onCreate:初... 阅读全文
posted @ 2014-09-12 21:17 哨兵 阅读(210) 评论(0) 推荐(0)

摘要: Activity类定义出来后, 何时实例化,方法何时调用都有Android系统决定Activity的exported属性为ture时,表明这个activity可以被其他应用调用不能再activity的onCreate方法中获取控件的宽度和高度,因为此时控件还没有完成度量在Activity的声明周期中... 阅读全文
posted @ 2014-09-12 21:12 哨兵 阅读(608) 评论(0) 推荐(0)

摘要: Java源文件的扩展名是.java,编译之后生成.class的文件.所有的类都有一个共同的继承祖先Object类 一个.java文件中只能有一个public类,一个public类只能定义在以它的类名命名的文件中 Implement关键字用来实现接口,类可以实现多个接口,继承使用extends 关键字 package(包)为了更好的组织java程序,包为java程序提供了一个命名空间,一个j... 阅读全文
posted @ 2014-09-12 20:52 哨兵 阅读(1677) 评论(0) 推荐(0)

摘要: 样式是属性值的集合,能被应用到一个元素,类似CSS,每个控件最多只能有一个样式,通过控件的Stype属性应用样式,如下代码,其中BigFontButtonStyle是用于检索资源的关键字,也可以通过代码指定样式: cmd.Style = (Style)cmd.FindResource("BigFontButtonStyle"); //样式指定为空 A Normal Button Styl... 阅读全文
posted @ 2014-09-12 20:21 哨兵 阅读(776) 评论(5) 推荐(1)

摘要: Contract由Contract name和Contract type组成,Contract两个参数可以省略可以implicit也可以explicit,implicit时name和type会自动推断 某些情况必须要指定contract name,最常见的情况是一个类export多个相同类型的成员,... 阅读全文
posted @ 2014-09-12 14:24 哨兵 阅读(592) 评论(0) 推荐(0)