android开发入门与实践 读书笔记心得(张迅雷闪击android系列)


pro android media developing graphics,music,video and rich media apps for smartphones and tablets
博客园经典推荐
http://blog.csdn.net/android_tutor/article/details/5772285
第一章 android introduction
platform include 4 part:操作系统、中间件、用户界面和应用软件。基于Java并运行在Linux内核上的操作系统。google公司内置了很多有用的软件,如打电话、发短信等。

开发手机联盟: Open Handset Alliance

模拟器:
不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫。
模拟器不支持USB连接
模拟器不支持相机/视频捕捉
模拟器不支持音频输入(捕捉),但支持输出(重放)
模拟器不支持扩展耳机
模拟器不能确定连接状态
模拟器不能确定电池电量水平和充电状态
模拟器不能确定SD卡的插入和弹出。
模拟器不支持蓝牙。

debug:a c盘空间不足 清理 C:\Documents and Settings\“用户名”\Local Settings\Temp\AndroidEmulator 文件夹的内容。
在eclipse里可以直接单击运行提高速度。
资源 android.com
中文资源 eoeandroid.com

第二章 环境搭建
Emulator 模拟器 apk文件 运行在Android平台

谐音记忆 android 爱pk aapt (apk) 运行在Android


AVD(Android Vitual Device)
cmd android list targets 列出可用平台

linux安装:sudo apt-get install sun-java6-bin

  apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。   apt-get命令一般需要root权限执行,所以一般跟着sudo命令



第三章 android SDK介绍
Dalvik Debug Monitor Service 调试监视服务 ddms.bat
Android Debug Bridge(adb) 调试桥
aapt.exe android Asset Packaging Tool aapt工具创建apk文件,这些文件包含了Android应用程序的二进制文件和资源文件。
Android 接口描述语言 aidl.exe
sqllite3.exe Android应用程序可以创建和使用SQLite数据文件

android.jar 是包含全部API的压缩包。
samples 目录下是SDK附带的一些例子
API结构的划分 app content database graphics hardware
Traceview.bat 跟踪显示工具
dx.bat 将class字节码重写为Android字节码 存储在dex文件中。
activityCreator.bat 生成Ant构建文件
Android Virtual Devices AVD


android.util 包含一些底层辅助类,例如,特定的容器类、xml辅助工具类等。
android.os 提供基本的操作服务,消息传递和进程间通信IPC
android.graphics 作为核心渲染包,提供图形渲染功能。
android.text 文本处理工具,富文本
android.database 底层API处理数据库
android.content 提供各种服务访问数据在手机设备上元素
android.view 核心用户界面框架
android.widget 提供标准用户界面 lists buttons layout managers (你爸奶妈)
android.app 提供高层应用程序模型,实现使用Activity
android.provider 提供方便调用系统提供的content providers的接口
android.telephony 提供包含API交互和手机设备的通话接口。
android.webikit 包含一系列工作在基于Web内容的API

GOOGLE基于基站的定位技术——MyLocation

第4章 Android Market及应用发布

第5章 HelloWorld

第6章 Android 应用程序结构介绍

Android 本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browers)等众多的核心应用。

Android的核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理 、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。

Android程序主要由下列4部分组成:
Activity 一般代表手机屏幕的一屏。如果把手机比作个浏览器,它就相当于一个网页。Activity 之间的跳转有可能返回值。
Android 会把每个应用的开始到当前的每一个屏幕保存在堆栈中。
Broadcast Intent Receiver
Service
Content Provider

(谐音:爱把CS)

BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册
R文件对下边即将介绍的资源进行全局索引。在下面介绍的res文件夹中,内容发生任何变化.R.java都会重新编译,同步更新。
AndroidManifest.xml 应用的配置文件。

第7章 Android 基本组件介绍
Activith是一个UI的容器
视图组件View
视图容器组件Viewgroup
布局组件Layout
布局参数LayoutParams



setContentView(R.layout.main) 负责当前的Activity与main.xml文件相关联。
Android:layout_width="fill_parent"填充满父容器的空间,wrap_content 只需要将bg.jpg包裹起来即可。
dip device independentpixels 依赖于设备的像素。
px pixels 像素
sp scaled pixels-best for text size 带比例的像素
pt


LayoutInflater inflate=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)
得到一个LayoutInflater对象。这个对象可以对XML的布局文件进行解析,并且生成一个VIEW.
所有的LayoutParams都是继承Android.view.ViewGroup.LayoutParams

widget:
Spinner 下拉列表 wrap_content 高度自适应
AutoCompleteTextView 自动完成文本
日期选择器 DatePicker 介绍与应用
时间选择器 TimePicker的介绍与应用
滚动视图 ScrollView的介绍与应用
ProgressBar 进度条
SeekBar 拖动条
RatingBar 评分组件
ImageView 介绍与应用
ImageSwithcher&Gallery 切换图片 在使用ImageSwitcher之前,一定要调用setFactory方法,否则,setImageResource这个方法会出现空指针异常。
GridView 网格视图
Tab 标签的介绍与应用
menu

Android应用的灵魂——intent 和Activity
intent 一次即将操作的抽象描述
3个作用 a 启动一个新的Activity并且可以携带数据
b 通过intent来启动一个服务service
c 通过intent来广播一个事件
Bundle类型使用起来有点像HashMap 类型安全的容器。它是对HashMap做了一层封装。但Bundle存入的只能是基本类型。

ListView 列表
——————————————————————————————————
ArrayAdapter是ListAdapter直接子类
————————————————————————————————————


ArrayAdapter
SimpleAdapter
SimpleCursorAdapter


Dialog 对话框
AlertDialog
ProgressDialog


Toast和Notification应用
Toast虽然也是提醒用户的一种方式,但是在实现上和Notification不一样,后者需要NotificationManager所管理。而Toast是作为Android中的Widget存在的。
首先实例化一个Toast Toast toast=new Toast(this)来实现
第二 每一个Toast都可以和一个View相关,如toast.setView(view)
第三 Toast的显示长途有长有短,
第四 设置好属性后,就可以Toast显示出来,通过Toast.show()系统就会显出这个Toast。
最后 当写完代码后需要在AndroidManifest.xml文件中加入对振动的权限控制。要不然程序会因为没有振动权限而报错。实现代码如下:
<uses-permission Android:name="Android.permission.VIBRATE" />


第8章 移动信息仓库——Android的数据存储操作
Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器、网络。 preferences是参数

如何使用Android提供的工具File explore,来查看和删除模拟器当中的数据库表。
如果使用LogCat来看程序当中的打印的日志。
SQLiteDatabase db=mOpenHelper.getWritableDatabase() 这条语句负责得到一个可写的SQLite数据库。如果这个数据库还没有建立,那么mOpenHelper辅助类负责建立这个数据库。
db.execSQL(sql1) 语句对SQL语句进行执行。
Android支持5种打印级别 vwide Verbose Warning Info Debug Error (谐音:威武我的衣)


ContentValues类和Hashtable比较类似,也是负责存储一些名值对,名是一个String类型,而值都是基本类型。

对单机menu里边按钮的处理逻辑全部放在onMenuItemSelected函数里。

Content Provider
一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴漏出去。


如果需要访问外部网络,则需要在AndroidManifest.xml文件中加入如下代码申请权限许可;
<uses-permission Android:name="Android.permission.INTERNET" />

webservice 网络存储


第9章 Android的核心——Intent
灵魂,程序跳转和传递数据基本上是靠Intent sbs
三种形式
startActivity
broadcast Intent
startService

启动一个特定的Activity 只需要将当前的Context和这个Activity的class作为参数构造一个Intent
启动一个未知名的Activity 让系统去寻找和匹配合适的Activity来启动。
处理一个Activity的返回值 startActivityForResult方法用于启动一个Activity并且新的Activity执行完成后需要返回到启动它的Activity来执行回调函数毁掉
ACTION_MAIN AndroidManifest.xml 标记当前Activity作为一个程序的入口。

与动作(Action)相关联的数据(Data)介绍
Android中采用指向数据的一个URI来表示data,例如 content://contacts/1

形成一种级别的语言规范。
Action
categrory 类别,它为执行动作的附加信息
type 数据类型,显示指定Intent的数据类型MIME
component 组件,指定Intent的目标组件的类名称
extras 附加信息,是其它所有附加信息的集合。

两种形式使用Intent
直接Intent setComponet(ComponentName)
setClass(Context,Class)
简介Intent 没有指定commonent属性的Intent
Intent还有一个重要的机制就是作为不同进程间传递数据和事件的媒介。

BroadCast Receiver ,并且一般的要给注册的这个Broadcast Receiver设置一个Intent Filter来制定当前的Broadcast Receiver是对哪些Intent进行监听。在onReceive方法里边最好不要有执行超过5s的代码,如果这样的话,Android系统就会弹出超时对话框,有比较耗时的方法,可以把这些方法写在一个线程里边,单独来执行。

两种方式对BroadcastReceive进行注册:
a:AndroidManifest.xml文档当中进行注册。推荐
b: 代码当中直接注册

第10章 一切为用户服务——Service应用实例
Service 服务,它不能自己运行,需要通过某一个Activity或者其它Context对象来调用。
Context.startService() 和 Context.bindService() 两种方式启动Service,如果在Service的onCreate或者onStart做一些很耗时的动作,最好是启动一个新线程来运行Service,因为,如果Service是运行在主线程中,会影响到程序的UI操作或者阻塞主线程中的其它事情。
Local Service
interprocess communication IPC 不同进程直接通信机制

Service 的生命周期方法比Activity要少一些,只有onCreate、onStart、onDestroy
bindService是绑定一起共存亡。
关于BroadcastReceiver,可以这样理解——
Activity是应用的“眼睛”,其展示给用户,可以用来交互;
而BroadcastReceiver是“耳朵”,其接受发生的Intent;
Service则相当于“手”,其把事情做完。

Description Resource Path Location Type
The type R is already defined R.java /ServicesDemo/gen/com/iceskysl/servicesdemo line 10 Java Problem


第11章 开发Android应用的基本步骤
a 项目有哪些功能;
b 需要哪些必须的界面以及界面之间跳转的流程
c 需要的数据及数据来源和格式
d 是否需要服务端支持
e 是否需要本地数据库支持
f 是否需要特殊的权限
g 是否需要后台进程等
数据来源有多种 SharePreferences、文件系统、数据库、Content Provider、网络 等方式

第12章 Android综合实例——RSS阅读器实例
RSS 是一个网络站点用来和其它站点之间共享内容的。
RICH Site Summary
RDF Resource Description Framework 新一代的语义网技术
SAX Simple API for XML 通DOM一样也是一个访问XML文档的接口。同DOM一样,SAX并不是一个实际可以使用的XML文档解析器,而是其它兼容SAX的解析器要实现的接口和帮助类的集合。


DOM(文件对象模型),为XML文档的解析定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用DOM接口来操作整个树结构。
优点:整个文档树在内存当中,便于操作:支持删除、修改、重新排列等多种功能。
缺点:将整个文档调入内存,浪费时间和空间。

SAX解析XML文档为事件驱动。不用事先调入整个文档,占用资源少,尤其在嵌入式环境,如Android,极力推荐采用SAX进行解析。


第13章 Android综合实例2——基于Google Map开发个人移动地图



Android经典实例笔记
————————————————————————————————————————————————————
findViewById(R.id.go) 根据资源的名称加载View类型的资源;
getString(R.string.msg_dialog) 可以加载字符串资源;
AlertDialog.show() 是一个静态方法。

Activity是一个非常重要的基础类;类同=》J2ME中的Display类;Win32平台的Form类;
如果把Activity看做MVC中的Control,它负责管理UI和接受事件(包括用户输入)

调转功能用Intent来操作 函数 setClass() 设置跳转前后两个Activity类的实例,然后调用Activity自己的startActivity(intent)即可。 finish() 表示当前Activity关掉。
Android 用Activity Stack来管理多个Activity,同一时刻只会有最顶上的那个Activity是处于active或者running状态


intent 要定位事件的目的地。

种类(category)
类型(type)
组件(componet)
附加数据(extras)



debug----------------------------------------------------------------------------------------------------------------
1 用eclipse打开源码时,出现“Unable to resolve target 'android-2'”提示

版本问题:

这是Android中打开一个低版本的工程出现的问题,我这边以用android2.2打开android1.5的工程为例。

把android1.5工程目录下的default.properties文件中的"target=android-2"改成"target=android-8" 具体改成多少请参照Android SDK and AVD Manager里模拟器的API Level,一般3以上就能正常运行了。


---------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(Android开发)