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

摘要:第6章 用户界面基础指导Android的UX(用户体验)团队已经为Android应用程序的交互和视觉效果设计的一套准则.请记住如果你想要做出一款好应用,请时刻站在用户的角度上考虑问题。首要的问题就是用户界面,如何设计好的用户界面就是本章的内容!快速预览Icon设计指南 和android icon 模板包(光盘1-8)你的应用需要各种各样的icon, 从一个启动icon一直到菜单icon,对话框,标签,状态栏等。Icon指南会描述每一种icon的细节,大小,颜色,阴影的规格,还有一些使用上的细节android icon 模板包使用Photoshop就能打开了,是.psd文件。它会使你更容易的创建 阅读全文
posted @ 2013-11-18 20:09 jy02432443 阅读(1856) 评论(1) 推荐(0) 编辑
摘要:第5章 平板与手机虽然理论上建议大家支持所有的屏幕设备,但这确实比较麻烦而且很容易出错。我们一般最好把手机和平板分时两大类来发布两个APK这样的效果更容易管理。读者可以理解为我们需要针对个别boss,换个职业来对付它。5.1 平板与手机支持其实我们发现平板提供更多的空间,让你的应用能显示更多的信息,但在手机上时可以会分几个部分显示,不会一次性全部显示出来。大部分情况下平板和手机的体验会有明显的不同。在android3.0上 ,android 引入了一套新的框架API,它允许我们更有效的设计应用,并更好的利用大屏幕。例如3.0新加入的Fragment类,这个类允许你对不同行为的UI组件分成独立的 阅读全文
posted @ 2013-11-18 19:45 jy02432443 阅读(1365) 评论(0) 推荐(0) 编辑
摘要:第4章 多屏幕多分辨率的支持如果你买过Android手机的话,销售员一般会向你推荐这个android手机是最新版的系统啦,屏幕有多大,分辨率是多少之类的。这只是外表上的多屏幕和多分辨率,其实android内在还有一些影响因素,例如“密度”的概念。本章为详细的为你解释一些基础概念并适当的举一些例子教你怎么处理关于多屏幕多分辨率的支持。 虽然Android系统内置有一些机制能使用多屏幕多分辨率,但我们还是应该在加点外力来更加优化用户体验的效果。4.1多屏幕支持概述4.1.1基本术语和概念屏幕大小根据屏幕对角线实际测量的物理大小(android已经根据屏幕大小分为四类small, normal, l 阅读全文
posted @ 2013-11-18 19:40 jy02432443 阅读(3242) 评论(1) 推荐(3) 编辑
摘要:第3章 应用程序基本原理首先我们需要强调一下Android 应用程序是用java写的。Android SDK工具编译代码并把资源文件和数据打包成一个文件。这个名字的扩展名是.APK。要在android设备上运行应用程序,就必须使用APK文件格式。一般的编译器(如Eclipse)会帮你直接打包好。一旦应用程序被安装后,每一个Android应用程序都有自己的安全沙箱:(1)Android 操作系统是多用户Linux系统。你可以理解为每一个应用都有不同的用户(2)默认的系统会给每一个应用程序分配一个唯一的Linux 用户ID (这个ID是由系统使用的,应用程序不需知道)。(3)每一个进程都有一个虚拟 阅读全文
posted @ 2013-11-18 19:32 jy02432443 阅读(2314) 评论(1) 推荐(0) 编辑
摘要:第2章 基础入门本章是一些基础性的东西,学习Android前我们要了解下自己需要具备些什么知识,还有对目前Android设备的分布,有一个大概的了解。2.1 学习Android前我们需要具备的知识(1)java基础:包括语法以及一些常用的API。(必要)(2)面向对象基础:真的很重要(必要)(3)C/C++基础:以后底层开发可能需要用到。(可选)(4)有设计模式基础:用于设计软件的架构,可复用面向对象软件的基础。(可选)(5)英语。自学(可选)(6)良好的代码风格(必要)2.1.1java基础 Android绝对大部分是java语法,所以熟悉java是必要的,最好精通java语法。会对你开发一 阅读全文
posted @ 2013-11-18 19:30 jy02432443 阅读(1745) 评论(0) 推荐(0) 编辑
摘要:第1章 什么是AndroidAndroid是一个移动设备的软件栈,它包含操作系统,中间件和一些关键的应用。Android SDK提供工具和必要的API用来在Android平台上使用java程序语言来开始开发应用程序。以上↑是官方的解释,但我们需要理解几个关键点。(1)什么是软件栈:首先栈在数据结构中大家应该都明白,它是先进后出(或者后进先出)的数据结构。软件栈就是一种这样的结构,但它里面装的不单单是数据那么简单。Android软件栈它的最底层是Linux内核,然后中间是一些库文件,最上层则是应用程序框架(或者可以叫应用程序接口俗称API)。(2)java:开发android程序一般都是用jav 阅读全文
posted @ 2013-11-18 19:25 jy02432443 阅读(2396) 评论(0) 推荐(0) 编辑
摘要:第7章 通知一个通知是一条消息他是显示于你应用程序之外的一个界面中。当你告诉系统要发布一个通知时,它首先作为一个icon出现在通知区域。为了看见通知的细节,用户可以点击通知区域展开一个新的界面。下面让我们来看一下图7-1和图7-2:图7-1 通知出现在通知区域图7-2 通知展开后的效果(drawer)注意:除非特别注明外,本章指的都是NotificationCompat.Builder,它在v4 Support Library中有,正式添加于API Level 15。但有了v4 Support Library低版本系统也能用。另外Notification.Builder添加于android3. 阅读全文
posted @ 2012-12-31 17:53 jy02432443 阅读(11592) 评论(0) 推荐(4) 编辑
摘要:第6章 对话框一个对话框是一个小窗口,提示用户做出决定或输入额外的信息,一个对话框不填充屏幕并且通常用于在程序运行时中断,然后弹出通知提示用户,从而直接影响到正在运行的程序。图6-1就是对话框的外观。图6-1Dialog类是所有具体对话框的基类,但你应该避免直接实例化Dialog。因为可能有些现成的已经给你提供好了,比如以下几种:◆AlertDialog一个对话框,可以显示一个标题(可选),三个按钮(可选),内容的列表(可选),或一个自定义布局。◆DatePickerDialog或TimePickerDialog一个对话框,其中有一个预定义的用户界面,允许用户选择一个日期或时间。◆Progre 阅读全文
posted @ 2012-12-14 11:11 jy02432443 阅读(4361) 评论(0) 推荐(0) 编辑
摘要:第5章 设置(Settings)本章不同于通常网络上经常使用的SharedPreference,而是从底层了解Preference。FAQ QQ群213821767应用程序通常包括允许用户修改应用程序的特性和行为的设置功能。例如,一些应用程序允许用户指定通知是否启用或指定多久使用云同步数据。如果你想要为你的应用程序提供设置,你应该使用Android的Preference APIs来构建统一的接口。本章的主角就是Preference,下面先让我们看一下图5-1::图5-1 这是android短信息应用程序的设置界面截图。它使用就是就是Preference5.1 概述相比使用View对象来构建用户 阅读全文
posted @ 2012-11-29 18:04 jy02432443 阅读(15617) 评论(3) 推荐(4) 编辑
摘要:第4章 Action BarAction Bar是一个能用于确定应用程序和用户的位置,并提供给用户操作和导航模式的窗口功能。如果需要显著地展示当前用户的操作或导航,应该使用Action Bar,因为Action Bar为用户提供了一个统一的跨应用程序和系统的接口,并且针对不同尺寸的屏幕优雅的处理了Action Bar的适配。你可以通过ActionBarAPI来控制它的行为和可视性,这些API添加于Android 3.0(API级别为11)。 Action Bar设计的目的是:◆提供一个专门的空间来确定应用程序的标识和用户的位置。这是在应用程序图标或者是左侧的logo以及Activity的标题帮 阅读全文
posted @ 2012-11-27 22:51 jy02432443 阅读(10493) 评论(3) 推荐(3) 编辑
摘要:第3章 菜单在许多不同类型的应用中,菜单通常是一种用户界面组件。为了提供给用户提供熟悉且一致的体验,你需要使用菜单API来展示用户动作和你Activity中的其他选项。从安卓3.0系统(API level 11)开始,安卓设备已经不再需要提供专用的菜单按键。基于这种变化,安卓应用需要远离原来所依赖的传统6选项菜单盘,取而代之的是提供一个动作条来显示普通用户的动作。虽然设计方案和用户使用菜单选项的方式已经改变,但是从语义上定义的一套动作和选项仍然是基于菜单API的。这份指导书将介绍在所有版本的安卓系统中如何去创建三个基本类型的菜单和动作:1. 选项菜单和动作条选项菜单对于一个应用的菜单项来说是首 阅读全文
posted @ 2012-11-16 21:18 jy02432443 阅读(3381) 评论(0) 推荐(0) 编辑
摘要:第2章 输入控件输入控件是应用程序中用户接口的一种交互式组件。Android提供了大量的可供人们在UI中使用的控件,比如按钮、文本区域、(带滑块的)进度条、复选框、缩放按钮以及切换按钮等等。在UI中增加输入控件就如同在XML布局中增加XNL元素一样简单。举例来说,下面为一个带有文本区域和按钮的布局。先看下图2-1的效果:图2-1 各种输入控件接下来然我们看下代码清单2-1是如何布局上面这些控件的:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" 阅读全文
posted @ 2012-11-14 19:51 jy02432443 阅读(2887) 评论(2) 推荐(0) 编辑
摘要:第1章 用户界面和布局应用程序的用户界面就是用户能看到并可以与它交互的任何东西。Android提供多种预置的UI组件,如结构化布局对象和允许你为应用程序创建图形用户界面的UI控件。Android也会为特殊的接口提供其他UI模块,如对话框,通知和菜单。在一个Android应用中,所有用户界面元素都是由View和ViewGroup对象创建的。View 是一种可以在屏幕上绘制某种画面并且可以与用户互动的对象。ViewGroup对象则是为了定义布局的接口而保存其他View(和ViewGroup)对象。Android提供一个View和ViewGroup子类的集合,这个集合能为你提供相同的输入控制(例如按 阅读全文
posted @ 2012-11-13 23:06 jy02432443 阅读(5882) 评论(14) 推荐(2) 编辑
摘要:第8章 AndroidManifest.xml文件每个Android应用程序在根目录下必定有一个AndroidManifest.xml文件(文件名必须是这个)。这个manifest文件向android系统列出了应用程序的必要信息,有了这些信息,系统才能运行应用程序(linux你懂的)。除此之外,manifest还有以下作用:◆列举了应用程序的java包。包名是识别应用程序的唯一标志。◆描述了应用程序的组件——Activity、Service、Broadcast receivers,Content providers。列举了实现每个组件的类,并给出可能的值(例如,类能处理的intent信息)。这 阅读全文
posted @ 2012-10-12 17:10 jy02432443 阅读(1996) 评论(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 @ 2012-10-09 15:40 jy02432443 阅读(2958) 评论(0) 推荐(1) 编辑
摘要:第6章 权限(Permissions)本文档介绍了应用程序开发人员如何使用由Android提供的安全功能。在Android 开放源代码项目AOSP(Android Open Source Project)中提供了更普通的Android安全性概述。Android是一种分权限的操作系统,在Android上运行的每个应用程序都具有各自独立的系统标识(Linux用户ID和组ID)。系统各部分有不同并明显的标识。因此,Linux上运行的各个应用程序相互独立且与系统无关。Android的“permissions”机制通俗来说就是你程序就算实现了那个功能,如果没申请权限的话,那个功能一样运行部了。并且每个应 阅读全文
posted @ 2012-09-21 16:08 jy02432443 阅读(3767) 评论(0) 推荐(2) 编辑
摘要:第5章 Android中的进程与线程 当一个应用程序开始运行它的第一个组件时,Android会为它启动一个Linux进程,并在其中执行一个单一的线程。默认情况下,应用程序所有的组件均在这个进程的这个线程中运行(就是我们常说的android app主线程)。然而,你也可以安排组件在其他进程中运行,而且可以为任意进程创建额外的线程。本章主要介绍android app下的线程和进程是如何工作的5.1 进程默认情况下,同一应用程序的所有组件运行在同一进程中。不过,如果你需要控制某个组件属于哪个进程,也可以通过修改manifest文件来实现。manifest文件中的所有组件节点如<activity 阅读全文
posted @ 2012-09-11 17:48 jy02432443 阅读(2201) 评论(3) 推荐(3) 编辑
摘要:第4章 Intents和Intent Filters一个Android应用程序的三个核心组件-activities,services,boradcast receivers都是通过调用intents消息来激活的。Intent消息传递是在最近运行的组件之间的一种设施,它能用于相同的或不同的应用程序中。intent它本身是一个Intent对象,是一种把想要执行的操作抽象化的数据结构,或者使用广播描述发生或者宣布一些事情。传递每一种组件类型的intent都有一个单独的机制:1. 一个Intent对象通过Context.startActivity()或者Activity.startActivityFo 阅读全文
posted @ 2012-09-05 16:07 jy02432443 阅读(1998) 评论(0) 推荐(1) 编辑
摘要:第2章 ServicesService是一个长期运行在后台,并不提供用户界面的应用程序组件。其他应用程序的组件可以启动一个service,并且即使用户切换到另一个应用程序,service也可以在后台继续运行。此外,一个组件可以绑定到service与它进行交互,甚至执行进程间通信(IPC)。例如,一个service可能会处理来自后台的所有事情,包括网络事务、播放音乐、执行文件I/O或者与content provider交互。一个service基本上有两种形态:1. 启动态(Started):当应用程序组件调用startService()方法来启动一个service时,service就处于“sta 阅读全文
posted @ 2012-08-15 17:48 jy02432443 阅读(2282) 评论(1) 推荐(2) 编辑
摘要:第1章 ActivityActivity是一个应用程序组件,它提供了一个屏幕,用户可以与它进行交互来做一些事情,比如拨打电话,拍照,发邮件,或查看地图。每个Activity都被给予了一个窗口,可在其中绘制它的用户界面。窗口通常会占据整个屏幕,但可能比屏幕和浮在上方的其他窗口都要小。一个应用程序通常由多个互相松散绑定的activity组成。当首次启动应用时,应用程序中会有一个activity被指定为“main”activity呈现给用户。这样每个activity就可以启动另一个activity来执行不同的操作。每次启动一个新的activity,先前的activity就会停止,但系统会保留堆栈(回 阅读全文
posted @ 2012-08-03 18:21 jy02432443 阅读(2758) 评论(1) 推荐(3) 编辑