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以上就能正常运行了。


---------------------------------------------------------------------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值