[email_address]
 
不仅仅是一部手机 <ul><li>出色的操控性的用户体验 </li></ul><ul><li>华丽的界面 </li></ul><ul><li>出色的上网体验 safari </li></ul><ul><li>娱乐  -  游戏,音乐 </li>...
华丽的挣扎 <ul><li>历史悠久,使用人群基数非常大 </li></ul><ul><li>软件也是比较多 </li></ul><ul><li>在现在手机系统更新速度越来越快的今天,界面和操控无疑有点 out </li></ul><ul><l...
<ul><li>优势在于手机上的 Office 协同软件 </li></ul><ul><li>更新速度不是一个慢字了得 </li></ul><ul><li>期待还在产房里的 Windows Phone 7 </li></ul>温室的花朵
<ul><li>Google’s  开源的操作系统 </li></ul><ul><li>丰富的网络应用功能 Google map, youtube, search </li></ul><ul><li>Google adsense for mob...
Scan barcode Goggles
<ul><li>Architecture </li></ul><ul><li>Application </li></ul><ul><li>Activity </li></ul><ul><li>Interaction </li></ul>
 
 
AndroidManifest.xml  是系统的控制文件,它告诉系统如何处理你所创建的所有 顶层组件 ( 尤其是 Activities, 服务 ,Intent 接收器和 ContentProvider) 。
<?xml version= &quot;1.0&quot; encoding=&quot;utf-8&quot;?> <manifest xmlns:android= &quot;http://schemas.android.com/apk/...
Drawable  : png, .9.png, .jpg files  这些类型的文件被编译进下列这些图表资源列表 Layouts : 可编译成屏幕布局的 XML 文件,编译时, Android 产生一个叫 R 的类,它指向你程序中所有的资源...
<ul><li>Activity 是最基本的 Andorid 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。 </li></ul><ul><li>同时只可能有一个页面是活动 Activity </li></ul><ul><li>每个...
Lifecycle of an Activity
 
 
startActivity(new Intent(&quot;com.myAndroidApp.action.SETTING&quot;)); Code Snippet <activity android:name=&quot;.Setting...
关于 Intent—— 组件之间的联系 Intent  -  执行某操作的一个抽象描述。
显式 Intent  用于已有意向的情况 例如从 Boy 跳转到 Girl 的 Activity Intent intent = new Intent(Boy.class, Girl.class); startActivity(intent);...
发布 存档 年 龄 身 高 体 重 三 围 查找关键字 合适 结婚 方式二、征婚
发布 存档 Manifest  添加 Intent-filter The Intent-filter workflow 查找关键 interfilter Intent 找到最合适 关联启动 隐式 Intent
<activity android:name=&quot;.SettingActivity&quot;> <intent-filter> <action android:name=&quot;com.myAndroidApp.action.SE...
Intent-filter  匹配过程
Intent
<ul><li>一种以 KEY , VAL 方式存储的数据的类型,类似 MAP 。 </li></ul><ul><li>但不能传递复杂的数据类型,只能传递例如:字符串,数字型等类型。 </li></ul><ul><li>在何时用? </li><...
视图 (Views) 可以将其自身绘制到屏幕上。 Android 的用户界面由一系列的视图树 ( trees of views )构成。接口都是由一组以树的形式出现的视图组成的。 开发者可 以通过创建一个新的视图的方法来使用自定义的图形处理技术...
大概写了 20 个常用组件
<ul><li>ContentProvider / ContentResolver / UriMatcher </li></ul><ul><li>Broadcast / BroadcastReceiver / Notification </li...
<ul><li>Notification –  任务栏通知 </li></ul><ul><li>Services –  后台服务 </li></ul><ul><li>Broadcast –  广播 </li></ul><ul><li>Broad...
Broadcast Broadcast Receiver(get intent) Services Activities Intent Broadcast Intent 组件  /  进程级的 Observer 广播
<ul><li>添加  Intent-filter – manifest.xml </li></ul><ul><li>添加广播数据  Bundle 实例到 intent </li></ul><ul><li>广播到某个组件  sendBroadc...
Manifest.xml <receiver android:name=&quot;Receiver&quot;>  <intent-filter>  <!--  和 Intent 中的 action 对应  -->  <action andr...
Difference of startService and bindService
 
Query Delete Update Insert 程序间 数据访问 操作?
例如 使用内容管理器 (ContentProvider) 来访问联系人列表。你的应用程序也可以使用其它程序通过内容管理器提 供的数据,同时你也可以定义你自己的内容管理器来向其它应用提供数据访问服务。 注意,它是同步执行的。
A :标准前缀,用来说明一个 Content Provider 控制这些数据,无法改变的; B : URI 的标识,它定义了是哪个 Content Provider 提供这些数据。对于第三方应用程序,为了保证 URI 标识的唯一性,它必须是一个...
<ul><li>访问一致性,即接口描述已经出现成的了, URI 已经描述。 </li></ul><ul><li>天生具有权限控制(例如 FTP , HTTP , HTTPS 协议等等) </li></ul>但是, URI 传递不能数据类型就比较...
<ul><li>content://media/internal/images  这个 URI 将返回设备上存储的所有图片 </li></ul><ul><li>content://contacts/people/  这个 URI 将返回设备上的...
<ul><li>ContentProvider + UriMatcher </li></ul><ul><li>ContentResolver ( Activity 方法) </li></ul>
好象是和 COM 很相似…
 
 
Upcoming SlideShare
Loading in …5
×

Anroid development part.1

3,568 views

Published on

在公司内部讲解的一个andoid开发的ppt.

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,568
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
82
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Anroid development part.1

  1. 1. [email_address]
  2. 3. 不仅仅是一部手机 <ul><li>出色的操控性的用户体验 </li></ul><ul><li>华丽的界面 </li></ul><ul><li>出色的上网体验 safari </li></ul><ul><li>娱乐 - 游戏,音乐 </li></ul><ul><li>market </li></ul><ul><li>非常多的应用程序 </li></ul><ul><li>相对成熟的操作系统 </li></ul><ul><li>相对成熟的商业体系 </li></ul>代表智能机的一种趋势
  3. 4. 华丽的挣扎 <ul><li>历史悠久,使用人群基数非常大 </li></ul><ul><li>软件也是比较多 </li></ul><ul><li>在现在手机系统更新速度越来越快的今天,界面和操控无疑有点 out </li></ul><ul><li>即将退出历史舞台 </li></ul>
  4. 5. <ul><li>优势在于手机上的 Office 协同软件 </li></ul><ul><li>更新速度不是一个慢字了得 </li></ul><ul><li>期待还在产房里的 Windows Phone 7 </li></ul>温室的花朵
  5. 6. <ul><li>Google’s 开源的操作系统 </li></ul><ul><li>丰富的网络应用功能 Google map, youtube, search </li></ul><ul><li>Google adsense for mobile </li></ul><ul><li>Market 已经快超万 </li></ul><ul><li>系统更新速度快,目前 2.1 </li></ul>
  6. 7. Scan barcode Goggles
  7. 8. <ul><li>Architecture </li></ul><ul><li>Application </li></ul><ul><li>Activity </li></ul><ul><li>Interaction </li></ul>
  8. 11. AndroidManifest.xml 是系统的控制文件,它告诉系统如何处理你所创建的所有 顶层组件 ( 尤其是 Activities, 服务 ,Intent 接收器和 ContentProvider) 。
  9. 12. <?xml version= &quot;1.0&quot; encoding=&quot;utf-8&quot;?> <manifest xmlns:android= &quot;http://schemas.android.com/apk/res/android&quot; package= &quot;com.myAndroidApp&quot; android:versionCode= &quot;1&quot; android:versionName= &quot;1.0&quot;> <uses-permission android:name= &quot;android.permission.INTERNET&quot; /> <uses-permission android:name= &quot;android.permission.RECORD_AUDIO&quot;/> <application android:icon= &quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;> <activity android:name= &quot;.myActivity&quot; android:label= &quot;@string/app_name&quot;> <intent-filter> <action android:name= &quot;android.intent.action.MAIN&quot; /> <category android:name= &quot;android.intent.category.LAUNCHER&quot; /> </intent-filter> </activity> <activity android:name= &quot;SettingActivity&quot;></activity> <activity android:name= &quot;SensorActivity&quot;></activity> </application> <uses-sdk android:minSdkVersion= &quot;3&quot; /> </manifest> Code Snippet
  10. 13. Drawable : png, .9.png, .jpg files 这些类型的文件被编译进下列这些图表资源列表 Layouts : 可编译成屏幕布局的 XML 文件,编译时, Android 产生一个叫 R 的类,它指向你程序中所有的资源。 Values : 可编译成多种类型资源的 XML 文件。例如多语言问题的解决(字符串),数字常量。 Assets : Raw 格式文件。这里的任何文件都将直接被复制到设备上。编译产品时,这些数据不会被编译,它们被直接加入到程序包里。
  11. 14. <ul><li>Activity 是最基本的 Andorid 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。 </li></ul><ul><li>同时只可能有一个页面是活动 Activity </li></ul><ul><li>每个 Activity 之间可以通过 Intent 通迅 </li></ul><ul><li>每个 Activity 都有自己的生命周期 </li></ul>
  12. 15. Lifecycle of an Activity
  13. 18. startActivity(new Intent(&quot;com.myAndroidApp.action.SETTING&quot;)); Code Snippet <activity android:name=&quot;.SettingActivity&quot;> <intent-filter> <action android:name=&quot;com.myAndroidApp.action.SETTING&quot;/> <category android:name=&quot;android.intent.category.DEFAULT&quot;/> </intent-filter> </activity> Intent intent = new Intent(Boy.class, Girl.class); startActivity(intent); 一、 二、
  14. 19. 关于 Intent—— 组件之间的联系 Intent - 执行某操作的一个抽象描述。
  15. 20. 显式 Intent 用于已有意向的情况 例如从 Boy 跳转到 Girl 的 Activity Intent intent = new Intent(Boy.class, Girl.class); startActivity(intent); 方式一、非诚勿扰 Boy Girl Intent
  16. 21. 发布 存档 年 龄 身 高 体 重 三 围 查找关键字 合适 结婚 方式二、征婚
  17. 22. 发布 存档 Manifest 添加 Intent-filter The Intent-filter workflow 查找关键 interfilter Intent 找到最合适 关联启动 隐式 Intent
  18. 23. <activity android:name=&quot;.SettingActivity&quot;> <intent-filter> <action android:name=&quot;com.myAndroidApp.action.SETTING&quot;/> <category android:name=&quot;android.intent.category.DEFAULT&quot;/> </intent-filter> </activity> Code Snippet MainActivity.java String SETTING_ACTION = &quot;com.myAndroidApp.action.SETTING&quot;; Intent intent = new Intent(); intent.setAction(SETTING_ACTION ); startActivity(intent)
  19. 24. Intent-filter 匹配过程
  20. 25. Intent
  21. 26. <ul><li>一种以 KEY , VAL 方式存储的数据的类型,类似 MAP 。 </li></ul><ul><li>但不能传递复杂的数据类型,只能传递例如:字符串,数字型等类型。 </li></ul><ul><li>在何时用? </li></ul><ul><li>Intent 在各组件之间传递数据里就用 Bundle 类型来传递。 </li></ul>注:也可参见广播章里的代码。
  22. 27. 视图 (Views) 可以将其自身绘制到屏幕上。 Android 的用户界面由一系列的视图树 ( trees of views )构成。接口都是由一组以树的形式出现的视图组成的。 开发者可 以通过创建一个新的视图的方法来使用自定义的图形处理技术 ( 比如开发游戏,或者是 使用了不常用的用户图形 (UI) 窗口界面 (widget)) Layout 布局 视觉控件 Android UI
  23. 28. 大概写了 20 个常用组件
  24. 29. <ul><li>ContentProvider / ContentResolver / UriMatcher </li></ul><ul><li>Broadcast / BroadcastReceiver / Notification </li></ul>
  25. 30. <ul><li>Notification – 任务栏通知 </li></ul><ul><li>Services – 后台服务 </li></ul><ul><li>Broadcast – 广播 </li></ul><ul><li>Broadcast Receiver – 广播接收器 </li></ul>注:不是所有的程序都必须有以下组件。
  26. 31. Broadcast Broadcast Receiver(get intent) Services Activities Intent Broadcast Intent 组件 / 进程级的 Observer 广播
  27. 32. <ul><li>添加 Intent-filter – manifest.xml </li></ul><ul><li>添加广播数据 Bundle 实例到 intent </li></ul><ul><li>广播到某个组件 sendBroadcast(intent) </li></ul><ul><li>组件接收广播 ( 该组件继承自 BroadcastReceiver) onReceive(Context context, Intent intent) </li></ul><ul><li>通知到任务栏 notification </li></ul>Bundle —— 理解成 Hash Map ,但只允许存成基本的数据类型对,例如 String , int 。
  28. 33. Manifest.xml <receiver android:name=&quot;Receiver&quot;> <intent-filter> <!-- 和 Intent 中的 action 对应 --> <action android:name=&quot;com.myAndroidApp.action.Receiver&quot;/> </intent-filter> </receiver> Code Snippet MainActivity.java Intent intent = new Intent(); intent.setAction(RECEIVER_ACTION); Bundle buddle = new Bundle(); buddle.putString(&quot;title&quot;, &quot;Email&quot;); buddle.putString(&quot;content&quot;,&quot;ranklau&quot;); intent.putExtras(buddle); sendBroadcast(intent); Receiver.java public class Receiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); String title = bundle.getString(&quot;title&quot;); String content = bundle.getString(&quot;content&quot;); Notification notification = new Notification(R.drawable.icon1, &quot;New notification&quot;, System.currentTimeMillis()); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0); notification.setLatestEventInfo(context, title, content, contentIntent); NotificationManager notificationManager = (NotificationManager) context.getSystemService(android.content.Context.NOTIFICATION_SERVICE); notificationManager.notify(NOTIFICATION_ID, notification); } }
  29. 34. Difference of startService and bindService
  30. 36. Query Delete Update Insert 程序间 数据访问 操作?
  31. 37. 例如 使用内容管理器 (ContentProvider) 来访问联系人列表。你的应用程序也可以使用其它程序通过内容管理器提 供的数据,同时你也可以定义你自己的内容管理器来向其它应用提供数据访问服务。 注意,它是同步执行的。
  32. 38. A :标准前缀,用来说明一个 Content Provider 控制这些数据,无法改变的; B : URI 的标识,它定义了是哪个 Content Provider 提供这些数据。对于第三方应用程序,为了保证 URI 标识的唯一性,它必须是一个完整的、小写的 类名。这个标识在 <provider> 元素的 authorities 属性中说明: <provider name=”.TransportationProvider” authorities=”com.example.transportationprovider” . . . > C :路径, Content Provider 使用这些路径来确定当前需要生什么类型的数据, URI 中可能不包括路径,也可能包括多个; D :如果 URI 中包含,表示需要获取的记录的 ID ;如果没有 ID ,就表示返回全部; 由于 URI 通常比较长,而且有时候容易出错,切难以理解。所以,在 Android 当中定义了一些辅助类,并且定义了一些常量来代替这些长字符串,例如: People.CONTENT_URI What is the URI?
  33. 39. <ul><li>访问一致性,即接口描述已经出现成的了, URI 已经描述。 </li></ul><ul><li>天生具有权限控制(例如 FTP , HTTP , HTTPS 协议等等) </li></ul>但是, URI 传递不能数据类型就比较麻烦,所以。我想 Android 通过 bundle 作参数来传递复杂参数
  34. 40. <ul><li>content://media/internal/images 这个 URI 将返回设备上存储的所有图片 </li></ul><ul><li>content://contacts/people/ 这个 URI 将返回设备上的所有联系人信息 </li></ul><ul><li>content://contacts/people/45 这个 URI 返回单个结果(联系人信息中 ID 为 45 的联系人记录) </li></ul><ul><li>Intent intent= new Intent(Intent.DIAL_ACTION,Uri.parse(&quot;tel:5551212&quot;)); </li></ul><ul><li>startActivity(this.class,intent) // 启动拨号程序。 </li></ul>
  35. 41. <ul><li>ContentProvider + UriMatcher </li></ul><ul><li>ContentResolver ( Activity 方法) </li></ul>
  36. 42. 好象是和 COM 很相似…

×