随笔分类 -  从零开始--系统深入学习Android

摘要:第3章 菜单在许多不同类型的应用中,菜单通常是一种用户界面组件。为了提供给用户提供熟悉且一致的体验,你需要使用菜单API来展示用户动作和你Activity中的其他选项。从安卓3.0系统(API level 11)开始,安卓设备已经不再需要提供专用的菜单按键。基于这种变化,安卓应用需要远离原来所依赖的传统6选项菜单盘,取而代之的是提供一个动作条来显示普通用户的动作。虽然设计方案和用户使用菜单选项的方式已经改变,但是从语义上定义的一套动作和选项仍然是基于菜单API的。这份指导书将介绍在所有版本的安卓系统中如何去创建三个基本类型的菜单和动作:1. 选项菜单和动作条选项菜单对于一个应用的菜单项来说是首 阅读全文
posted @ 2013-12-19 15:17 jy02432443 阅读(1815) 评论(0) 推荐(2) 编辑
摘要:第2章 输入控件输入控件是应用程序中用户接口的一种交互式组件。Android提供了大量的可供人们在UI中使用的控件,比如按钮、文本区域、(带滑块的)进度条、复选框、缩放按钮以及切换按钮等等。在UI中增加输入控件就如同在XML布局中增加XNL元素一样简单。举例来说,下面为一个带有文本区域和按钮的布局。先看下图2-1的效果:图2-1 各种输入控件接下来然我们看下代码清单2-1是如何布局上面这些控件的: 代码清单2-1每个输入控件都支持一个特定的输入事件,如当用户输入文本或触摸一个按钮,这样你就可以处理事件。2.1 常用控件下面是一些常见的控件的清单,您可以在您的应用程序中使用它们。点... 阅读全文
posted @ 2013-12-18 17:27 jy02432443 阅读(783) 评论(0) 推荐(0) 编辑
摘要:第1章 用户界面和布局应用程序的用户界面就是用户能看到并可以与它交互的任何东西。Android提供多种预置的UI组件,如结构化布局对象和允许你为应用程序创建图形用户界面的UI控件。Android也会为特殊的接口提供其他UI模块,如对话框,通知和菜单。在一个Android应用中,所有用户界面元素都是由View和ViewGroup对象创建的。View 是一种可以在屏幕上绘制某种画面并且可以与用户互动的对象。ViewGroup对象则是为了定义布局的接口而保存其他View(和ViewGroup)对象。Android提供一个View和ViewGroup子类的集合,这个集合能为你提供相同的输入控制(例如按 阅读全文
posted @ 2013-12-18 16:07 jy02432443 阅读(1843) 评论(1) 推荐(3) 编辑
摘要:第8章 AndroidManifest.xml文件每个Android应用程序在根目录下必定有一个AndroidManifest.xml文件(文件名必须是这个)。这个manifest文件向android系统列出了应用程序的必要信息,有了这些信息,系统才能运行应用程序(linux你懂的)。除此之外,manifest还有以下作用:◆列举了应用程序的java包。包名是识别应用程序的唯一标志。◆描述了应用程序的组件——Activity、Service、Broadcast receivers,Content providers。列举了实现每个组件的类,并给出可能的值(例如,类能处理的intent信息)。这 阅读全文
posted @ 2013-12-03 11:34 jy02432443 阅读(498) 评论(0) 推荐(0) 编辑
摘要:第7章 App WidgetsApp Widgets是一个应用程序的微型视图,可以嵌入到其他应用程序(如主屏幕)并且能够定期更新。你可以发布一个应用程序的App Widget,而这些视图称为窗口的用户界面。一个应用程序组件,可以支持其他应用程序的App Widgets称为App Widget的主机(host)。下面的截图是显示音乐的App Widget。该文档将介绍如何在应用程序里发布和使用App Widget。7.1 基础知识要创建一个App Widget,您需要了解以下几点:◆AppWidgetProviderInfo对象:描述了一个App Widget的元数据,如在AppWidget的布 阅读全文
posted @ 2013-12-03 11:23 jy02432443 阅读(576) 评论(0) 推荐(0) 编辑
摘要:第6章 权限(Permissions)本文档介绍了应用程序开发人员如何使用由Android提供的安全功能。在Android 开放源代码项目AOSP(Android Open Source Project)中提供了更普通的Android安全性概述。Android是一种分权限的操作系统,在Android上运行的每个应用程序都具有各自独立的系统标识(Linux用户ID和组ID)。系统各部分有不同并明显的标识。因此,Linux上运行的各个应用程序相互独立且与系统无关。Android的“permissions”机制通俗来说就是你程序就算实现了那个功能,如果没申请权限的话,那个功能一样运行部了。并且每个应 阅读全文
posted @ 2013-11-21 18:05 jy02432443 阅读(827) 评论(0) 推荐(0) 编辑
摘要:第5章 Android中的进程与线程 当一个应用程序开始运行它的第一个组件时,Android会为它启动一个Linux进程,并在其中执行一个单一的线程。默认情况下,应用程序所有的组件均在这个进程的这个线程中运行(就是我们常说的android app主线程)。然而,你也可以安排组件在其他进程中运行,而且可以为任意进程创建额外的线程。本章主要介绍android app下的线程和进程是如何工作的5.1 进程默认情况下,同一应用程序的所有组件运行在同一进程中。不过,如果你需要控制某个组件属于哪个进程,也可以通过修改manifest文件来实现。manifest文件中的所有组件节点如,,,都支持androi 阅读全文
posted @ 2013-11-21 18:02 jy02432443 阅读(592) 评论(0) 推荐(0) 编辑
摘要:第4章 Intents和Intent Filters一个Android应用程序的三个核心组件-activities,services,boradcast receivers都是通过调用intents消息来激活的。Intent消息传递是在最近运行的组件之间的一种设施,它能用于相同的或不同的应用程序中。intent它本身是一个Intent对象,是一种把想要执行的操作抽象化的数据结构,或者使用广播描述发生或者宣布一些事情。传递每一种组件类型的intent都有一个单独的机制:1. 一个Intent对象通过Context.startActivity()或者Activity.startActivityFo 阅读全文
posted @ 2013-11-21 17:34 jy02432443 阅读(685) 评论(0) 推荐(0) 编辑
摘要:第3-3章 日历provider日历provider是用来存放用户日历事件的一个仓库。日历provider的API会允许你执行对日历、事件、Attendees(与会者)和提醒的查询、更新和删除操作。日历provider的API可以被应用程序和同步adapter(适配器)使用。规则会因执行调用的程序类型而有所不同。这篇文章主要集中介绍作为一个应用程序如何来使用的日历provider。一般来说,要读取或写入日历数据,应用程序的manifest文件就必须把合适的权限包含进去。为了更简单地执行一般操作,日历provider会提供一组intents。这些intents可以让用户进入到日历应用程序,以便插 阅读全文
posted @ 2013-11-21 17:25 jy02432443 阅读(5046) 评论(0) 推荐(0) 编辑
摘要:第3-2章 创建一个content providerContent provider对中心存储数据的访问进行管理。你将provider看作是Android应用程序中的一个或多个类来实现,这些类之后跟着manifest文件中的节点。你的类会实现一个ContentProvider子类,这个类是provider与其他应用程序之间的接口。虽然content provider一定会让数据对其他应用程序可用,但你可能也会需要一些在应用程序中的activities,这些activities允许用户查询和修改由provider管理的数据。下面是创建一个content provider的基本步骤以及要使用的AP 阅读全文
posted @ 2013-11-21 17:18 jy02432443 阅读(643) 评论(0) 推荐(0) 编辑
摘要:3-1 Content Provider的基础知识Content provider用于管理和访问中心仓库的数据。Provider是Android应用程序的一部分,它经常提供一个它自己的UI来用使用数据工作。然而,content provider主要是倾向于被其他应用程序使用,这些应用程序是通过一个provider客户端对象来访问provider。providers和provider客户端共同为数据提供一个一致的、标准的接口,这个接口也处理进程间通信和安全数据访问。本文接下来将介绍以下内容:1.content provider是如何工作的。2.介绍用来取出content provider中数据的 阅读全文
posted @ 2013-11-21 17:10 jy02432443 阅读(1301) 评论(2) 推荐(2) 编辑
摘要:第2-2章 AIDLAIDL的全称为Android Interface Definition Language翻译过来为Android接口定义语言。它类似其他你可能用过的IDL。它允许在客户端和服务端你定义一致的程序接口,这样是为了彼此之间能使用IPC(进程间通讯)机制通讯。在android中,一个进程不能正常的访问另一个进程中的内存。他们需要把自己的对象分解为基本单位,操作系统才能理解它们,然后才能安排这些对象执行IPC。这样的写法会让代码冗余,所以android使用了AIDL机制来处理这个。使用AIDL的情况就是如果你允许客户端从不同的应用程序中以IPC机制访问你的service并且想要在 阅读全文
posted @ 2013-11-19 21:23 jy02432443 阅读(567) 评论(0) 推荐(0) 编辑
摘要:第2-1章 Bound Servicebound service是一个在客户端-服务器(CS)接口中的服务器。一个bound service允许组件绑定到service,发送请求、接收响应,甚至执行进程间通信(IPC)。bound service通常只有在它服务于其他应用程序组件时才会存在,并且它不会无限的在后台运行。本篇文章将介绍如何创建一个bound service,包括如何把其他的应用程序组件绑定到service。2-1.1 基本知识bound service是Service类的一个实现,这个类允许其他的应用程序绑定它,并与之交互。为了给service提供绑定,你必须实现onBind() 阅读全文
posted @ 2013-11-19 21:18 jy02432443 阅读(1042) 评论(0) 推荐(1) 编辑
摘要:第2章 ServicesService是一个长期运行在后台,并不提供用户界面的应用程序组件。其他应用程序的组件可以启动一个service,并且即使用户切换到另一个应用程序,service也可以在后台继续运行。此外,一个组件可以绑定到service与它进行交互,甚至执行进程间通信(IPC)。例如,一个service可能会处理来自后台的所有事情,包括网络事务、播放音乐、执行文件I/O或者与content provider交互。一个service基本上有两种形态:1. 启动态(Started):当应用程序组件调用startService()方法来启动一个service时,service就处于“sta 阅读全文
posted @ 2013-11-19 21:09 jy02432443 阅读(901) 评论(0) 推荐(1) 编辑
摘要:第1-3章 任务和后台栈首先需要强调的是:所有activities都属于一个任务。一个任务包含一个或几个activities并可以让用户与之交互。任务能移到后台并保持每一个activity 的状态,这是为了让用户执行其他任务而不丢失先前的工作。接下来让我们快速预览一下本章的内容1. 保存Activity的状态2. 任务管理3. 定义启动模式4. 处理共用性5. 清空Back Stack6. 开始一个任务一个应用程序通常包括多个activities。每一个activity应该围绕一个具体的动作来设计,让用户能执行这个动作并且能启动其他activities。例如,一个email程序可能有一个act 阅读全文
posted @ 2013-11-19 21:02 jy02432443 阅读(993) 评论(0) 推荐(0) 编辑
摘要:第1-2章 Loaders(装载机)在Android 3.0中引入装载机,使得很容易异步加载Activity或Fragment中的数据。装载机有以下特点:1. 他们使每个Activity 和Fragment可用。2. 他们提供异步加载的数据。3. 当内容发生改变时他们监测数据的来源并传递新的结果。4. 当配置更改后被重新创建时,他们会自动重新连接到最近一次装载机的Cursor。因此,他们不需要重新查询自己的数据。1-2.1 装载机的API概述他们有可在一个应用程序中参与使用装载机的多个类和接口,如表格3-1所示:Class/Interface描述LoaderManager一个与Activity 阅读全文
posted @ 2013-11-19 20:59 jy02432443 阅读(735) 评论(0) 推荐(0) 编辑
摘要:第1-1章 Fragments在Activity中的fragment代表的是一种行为或用户界面的一部分。你可以在activity中结合多个fragments创建一个多面板UI,并可以在多个activity中重复使用fragment。你可以把fragment看作是activity的模块化的一个部分,它有自己的生命周期,接收它自己的输入事件,并且当activity正运行时,可以添加或移除fragment(这有点像在不同的activity中重复使用的“sub activity”)。Fragment必须被嵌入到activity中,并且它的生命周期直接受到activity生命周期的影响。例如,当acti 阅读全文
posted @ 2013-11-18 20:54 jy02432443 阅读(1375) 评论(0) 推荐(0) 编辑
摘要:第9章 开发入门本章从5个方面来讲解一个做出好应用需要注意哪些地方,它们包括1. 管理虚拟设备2. 项目管理3. 编译与执行4. 调试5. 图形处理神器draw9-patch在开始讲解这5个方面之前,首先让我们看一下Android程序程序的开发流程(1)Setup(设置)在这个阶段,你安装SDK,并设置好开发环境。然后我们可以创建Android虚拟设备(AVDS)或者直接用真机连接Eclipise,不管是虚拟机还是真机都能安装我们的应用程序。(2)Development(开发)在这个阶段,我们需要建立和开发我们的android工程,其中包含所有源代码和资源等。(3)Debugging and 阅读全文
posted @ 2013-11-18 20:28 jy02432443 阅读(1564) 评论(1) 推荐(0) 编辑
摘要:第8章 Android SDK与源码下载如果你是新下载的SDK,请阅读一下步骤了解如何设置SDK。如果你已经下载使用过SDK,那么你应该使用AVD Manager,来更新即可。下面是构建Android SDK的一些步骤: 1.准备一台开发的电脑并确认它的系统环境。 2.从上面的表格中安装SDK启动包。 3.安装用于Eclipse 的ADT插件(如果你使用Eclipse开发的话)。 4.添加android平台的其他包到你的SDK。5.阅览Android SDK中的内容。然后还会教大家下载Android源码8.1准备用来开发的电脑在开始使用Android SDK之前,确认你的计算机满足系统... 阅读全文
posted @ 2013-11-18 20:17 jy02432443 阅读(5502) 评论(0) 推荐(1) 编辑
摘要:第7章 怎样做出一个好应用本章从5个方面来讲解一个做出好应用需要注意哪些地方,它们包括1. 易于操作2. 性能优化3. 即时响应4. 无缝流畅5. 安全7.1 易于操作在设计应用的时候,我们应该热爱极简主义,简单就是好的,对于很多用户来说,复杂的东西并不受欢迎。并且许多Android用户有残疾,需要给他们提供不同的方式来与Android设备进行交互。能一步到位的操作,就不要弄成几个步骤,举个例子如果你玩过魔兽世界的话,你会发现随着版本的更新技能是越来越少的而不是越来越多,也许你会看到新出来的几个技能,但是暴雪省去的技能是新增的几倍,例如法师传送整合为一个技能,去掉了火焰防护,冰霜防御,改成一个 阅读全文
posted @ 2013-11-18 20:13 jy02432443 阅读(1186) 评论(0) 推荐(0) 编辑