文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见Pro Android学习笔记(六四):安全和权限(1):签发apk,我们将对package做进一步了解. 每个apk都有一个唯一的根包名,在AndroidManifest.xml中定义,如下.开发者为包进行签发,前面和包名绑定,其他开发者不能对这个包进行更新. <?xml version="1…
目录(?)[-] 共享User ID的设置 共享资源例子 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 包在设备上安装时,系统会为其分配一个User ID.如果我们有几个应用,这几个应用之间需要深度的数据共享,在同一证书签发的情况下,可以让这几个应用使用同一UserID,达到数据共享. 共享User ID的设置 我们在Eclipse中创新两个应用:TestShareUserIdA和Te…
目录(?)[-] Client的AIDL文件 Client的代码 建立连接 请求服务 断开连接 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 和Local service不同,remote service可以被其他进程,即其他应用所调用. Client的AIDL文件在onBind()中将stub对象返回给client,client对stub对象的操作,就如同操作service的对外接口…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们有一篇很好的博文<Android学习笔记(三一):线程:Message和Runnable>对Handler进行了介绍.在此,我们作进一步了解. 前面,我们已经学习到主线程有一个主线程队列,对于异步处理(如Activity的UI触发.触发本地服务的startService(),以及外部进程调用Activity和广播).异步处理以消息…
目录(?)[-] 小例子 Handler的处理 Activity的代码片段 后台线程和UI的互动 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们介绍了Android主线程异步处理机制.通过Handler可以将消息放置到队列中等待处理.Handler可以控制消息放置在队列方式:sendMessage(), sendMessageAtFrontOfQueue(), sendMess…
目录(?)[-] 在项目中使用lib 源代码 了解一些机制 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在上一次学习中,我们创建的lib项目TestLib,本次学习,我们将学习如何在项目中调用lib.我们创新了一个普通的App项目,名字为TestUseLib. 在项目中使用lib 要在项目中使用lib,需要加入lib.在Eclipse中点击项目名按右键,选择Properties,将l…
目录(?)[-] 什么是lib项目 小例子 Lib的实现 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 上一次我们学习了通过共享UserID实现深度的代码和资源共享,实际上lib库,同样也可实现类似的功能. 什么是lib项目 lib项目和一般的项目一样是java代码和资源的集合,最终并不生产*.apk文件,而是作为其他项目的一部分,编译到其他项目的*.apk中. 一个lib项目有自己的…
目录(?)[-] 类比例子 数字签名 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Windows等操作系统中安装应用并不需要授权,为何Android需要?在设备安装的包都有一个唯一的包名,如果你试图安装一个已有包名的应用,是不会允许的,除非将之前的包删除.为了允许包升级,你必须确保是相同应用发布者,这需要数字签名. 类比例子 葡萄酒收集家发现每一种葡萄酒都有独一无二的色泽,如果色泽…
目录(?)[-] 主线程消息队列和线程池 查看线程信息 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Android的主线程也成为UI线程,为了避免5秒的ANR(应用不响应Application Not Responding),具体见5秒超时异常,这就需要后台线程.每个package在自己进程中运行,在进程中如何组织线程,通常需要handler. Android进程有四大组件:Acti…
在之前提供了小例子BookProvider,我们回过头看看如何将通过该Content Provider进行数据的读取. (1)增加 private void addBook(String name ,String isbn,String author){    /* 从ContentProvider的insert()方法的参数可以看到,通过ContentValues来进行数据的传递.ContentValues是key/values对,可以存储多个组,非常适合传递信息 */    ContentV…
 Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在Android 3.0 SDK中为平板引入,在4.0中也可以在phone中使用.在title中提供类似tab和菜单的效果,有三种形式:Tabbed action bar,list action bar和standard action bar,我们将在小例子中进行示范. Home Icon 在Actio…
可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和theme有关,如果theme设置不正确,还可能会出现异常. 相关的代码如下: public class ListActionBarDemo extends SearchTestCase3 implements OnNavigationListener{ //List触发的回调函数接口    @Ov…
目录(?)[-] 设置横排和竖排的不同排版风格 改写代码 对于fragment,经常涉及不同屏幕尺寸和不同的排版风格.我们在基础小例子上做一下改动,在横排的时候,仍是现实左右两个fragment,在竖排时,如下图显示: 屏幕上只显示一个fragment,点击列表上的数目,进入到简介的activity.下面介绍实现的方式. 设置横排和竖排的不同排版风格 在 Pro Android学习笔记(四):了解Android资源(下)的“资源和配置的变更”中,我们介绍了如何同资源文件夹名设置不同资源.缺省的l…
目录(?)[-] 利用setTransition 利用setCustomAnimations 通过ObjectAnimator自定义动态效果 程序代码的编写 利用fragment transaction进行切换,很方便提供切换的效果. 利用setTransition() 在Pro Android学习笔记(三九):Fragment(4):基础小例子-续的“Step 4:实现showDetail(int index),如何管理fragment”中,介绍了如何在容器FrameLayout中通过frag…
目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceState onRetainInstance 横屏竖屏的切换就是最为常见的配置变化,我们在Pro Android学习笔记(四一):Fragment(6):数据保留中讨论过. 配置变化还有设备连接了dock,改变语言等,在资源res/中,不同的配置有不同的后缀来进行最佳匹配,具体见Pro Android…
目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOptionItemSelected Click Listener 使用Intent 每个Activity都关联一个且是唯一一个menu对象,当对该menu进行创建,将触发onCreateOptionsMenu(). 创建Menu 我们通过下面简单的例子来阐述menu的各个属性. public class…
目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 <?xml version="1.0" encoding="utf-8"?> <Button xmlns:android=…
目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续探讨BaseAdapter 我们可以同继承抽象类BaseAdapter来实现自己的Adapter,自己设置子View的UI,不同子View可以由不同的布局,并自己进行数据和子view中数据的对应关系.图是例子的呈现结果,我们有很多图标,对这些图标按一定大小进行缩放,然后布局在GridView中.这个…
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只含有一个ListView的Activity,并通过setListAdapter()方法来管理adapter.我们可以通过扩展ListActivity来实现. 我们要在整个屏幕上显示ListView,我们直接继承使用ListActivity,不需要在定义自己的layout XML文件,我们在上一学习中…
目录(?)[-] Intent基本含义 系统的Intent Android引入了Intent的概念来唤起components,component包括:1.Activity(UI元件) 2.Service(后台代码) 3.Broadcast receiver(处理广播消息的代码) 4.Content provider(抽象数据的代码) Intent基本含义 intent是通知平台处理(唤起)的动作.Android唤起的动作将取决于注册了什么动作.例如我们有个简单的Activity:IntentBa…
目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用service提供很多功能,例如利用Google Maps API,现在我们将聚焦在HTTP serice中. Android SDK提供HttpClient,和J2EE中的接口非常相似.最常用的就是HTTP GET和HTTP POST.相关内容也可以阅读Android学习笔记(四五):互联网通信-Htt…
目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Content Provider(上) . abd –e shell -e是表面连接模拟器emulator,-d则是连接设备.在模拟器中,我们有一个提升的Linux权限,而在真实设备是没有的,我们可以在模拟器中处理SQLite数据,但是不能在真实设备这样做,即便是我们自己部署的应用. 模拟器Console 我们…
目录(?)[-] 利用XML创建菜单 XML的有关属性 onClick事件 Pop-up菜单 利用XML创建菜单 在代码中对每个菜单项进行设置,繁琐且修改不灵活,不能适配多国语言的要求,可以利用资源进行设置.在之前的Pro Android学习笔记(十):了解Intent(上)#系统的Intent中我们已经给了一个如何利用XML进行菜单项设计的详细小例子,这里就不在重复.这里仅补充一下说明. XML的有关属性 <menu xmlns:android="http://schemas.andro…
目录(?)[-] 什么是Alternative menu替代菜单 小例子说明 Alternative menu代码 关于Category和规范代码写法 关于flags 多个匹配的itemId等参数 什么是Alternative menu(替代菜单) 举个例子,Activity显示一个文本文件.如果用户想对文本文件进行编辑,Activity不提供编辑能力,但可由其他activity或者其他应用提供.我们将相关信息存储在一个intent中,例如该文本的Uri.这个intent可以匹配系统的多个应用,…
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类,所以可以作为view嵌入到其他的layout中.Android的layout有LinearLayout.TableLayout,RelativeLayout.FrameLayout.GridLayout. 线性布局:LinearLayout 这是最常用的,有anroid:orientation来确…
文章转载仅仅能用于非商业性质,且不能带有虚拟货币.积分.注冊等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 通过widget定义.我们在widget列表中看到了我们的TestWidget.当我们拖拽widget到主页时.假设在appwidet-provider中定义了android:configure的java类,在widget实例创建后会立即唤起配置activity.这个activity主要完毕两个任务:1.配置初始化数据…
目录(?)[-] Home Icon 源代码 TextView的滚动 返回主activity或指定activity     ActionBar在Android 3.0 SDK中为平板引入,在4.0中也可以在phone中使用.在title中提供类似tab和菜单的效果,有三种形式:Tabbed action bar,list action bar和standard action bar,我们将在小例子中进行示范. Home Icon 在Action Bar的最左边,就是Home icon和标题的区域…
目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 之前,我们直接在activity中执行http通信,在通信过程中可能会出现连接超时.socket超时等情况,超时阈值一般是秒级,例如AndroidHttpClient中设置的20秒,如果出现超时,就…
之前,我们学习的Action Bar是标准模式,Tab模式的如下图所示. 对于Tab,我们在Android学习笔记(二二): 多页显示-Tag的使用中学习过,但Action Bar的tab更适合fragment的使用.我们在之前实现的标准Action Bar的基础上添加导航用的tab,代码如下: public class TabbedActionBarDemo extends SearchTestCase3 implements ActionBar.TabListener{    @Overri…
目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Remote Service在之前的学习笔记 Android学习笔记(五三):服务Service(下)- Remote Service中介绍过.远程服允许行其他应用调用,及允许RPC(remote procedure call).在Android中remote需要…