Your SlideShare is downloading. ×
Android开发概览
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Android开发概览

2,360
views

Published on

2010年8月28日 广州UC DevDiv技术沙龙 fluke android开发分享

2010年8月28日 广州UC DevDiv技术沙龙 fluke android开发分享

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,360
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
35
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Dev Div 移动开发社区广州沙龙 BY 劳永超 http://www.devdiv.net
  • 2. Android 平台特性及开发介绍
    • 致谢
    • 分享一下 android 开发的概况
    • 介绍 android 的特性
    • 45 分钟左右分享 欢迎打断
    • 15 分钟交流
    http://www.devdiv.net
  • 3. 主要内容
    • Android 设备介绍
    • 热门应用介绍
    • 应用开发环境搭建
    • Android 应用开发框架概览
    • NDK 环境介绍
    http://www.devdiv.net
  • 4. Android 设备 http://www.devdiv.net
  • 5. 设备特性 & 系统特性
    • 大尺寸、高分辨率( HVGA 以上)、(电容式)触摸屏、可旋转屏幕
    • 传感器应用(触摸、重力、加速度、 GPS 位置等)
    • CPU 频率高、视频硬件解码、图形硬件加速
    • 高速网络( HSDPA,WIFI )
    • 多点触摸(实际上用的并不多)
    • 电子市场 ( Android market ,目前已有数万应用供下载)
    • i18n 做得很好
    • 特别的系统通知栏
    http://www.devdiv.net
  • 6. 必须面对的问题
    • 山寨化趋势很严重 ( 硬件多样化 )
    • 改制系统( Ophone, lephone? )
    • 兼容性问题必须考虑?
    http://www.devdiv.net
  • 7. Android 热门应用
    • Google 系列服务 ( 联系人同步、 Email 、 Gtalk)
    • 游戏(目前益智类的比较多)
    • LBS 、 SNS (FourSquare, Google Map, Google Places, Latitude ,导航、 Layar Browser)
    • 视频 ( Flash 、 youtube 、 Animal Planet 、优库)
    • 资讯天气( UC 桌面、天气频道)
    http://www.devdiv.net
  • 8. Layar Reality Browser http://www.devdiv.net
  • 9. Android 体验
    • 简单演示下模拟器上面的几个基本操作
    • 触摸
    • 电话
    • 程序进入退出
    http://www.devdiv.net
  • 10. Android 开发概览
    • Google 主导开发的基于 Linux+ 自家 Java 虚拟机( Dalvik )的手机系统
    • 开源,可以从 android.git.kernel.org 获取源码
    • Android 的核心是一个应用框架 ( 任务调度、窗口管理、任务间通信、视图管理、软件包管理、电话管理、资源管理、位置管理、通知管理等 )
    • 应用程序一般离不开应用框架
    http://www.devdiv.net
  • 11. Android 开发概览 http://www.devdiv.net
  • 12. Android 程序基本骨架
    • 一个应用程序的基本骨架
    • AndroidManifest.xml ( 程序的各大组件都在里面有描述 )
    • 主 Activity 类(入口)
    • 资源( Layout, 图片,文字等)
    • 下面看一个 AndroidManifest.xml
    http://www.devdiv.net
  • 13. Android 开发概览
    • <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>
    • <manifest . . . >
    • <application . . . >
    • < activity android:name=&quot;com.example.project.FreneticActivity&quot;
    • android:icon=&quot;@drawable/small_pic.png&quot;
    • android:label=&quot;@string/freneticLabel&quot;
    • . . . >
    • </activity>
    • . . .
    • </application>
    • </manifest>
    http://www.devdiv.net
  • 14. 演示 AndroidSkeleton 程序
    • IDE 中创建(导入工程)
    • 查看 AndroidMenifest.xml 文件
    • 查看主类
    • 菜单处理
    • Intent 打开
    • Activity 退出
    • 资源
    http://www.devdiv.net
  • 15. 开发环境搭建
    • android SDK ( 通过安装器来安装,从 http://developer.android.com 下载 )
    • eclipse + ADT 插件 (插件地址也可以从 developer.android.com 获取)
    • 从 eclipse 配置 android SDK 路径
    • NDK 后面讲
    http://www.devdiv.net
  • 16. Android 开发入门
    • 文档 docs 目录下面
    • 自带 Samples
    • 源码
    http://www.devdiv.net
  • 17. Android 组件介绍
    • 参考 docs/guide/topics/fundamentals.html
    • Activity ( 界面类 )
    • Services ( 后台服务 )
    • Broadcast Receiver
    • Content Provider (ContentResolver)
    • 生命周期问题
    • Intent ( 组件之间互相调用的纽带 -- 异步消息 )
    http://www.devdiv.net
  • 18. Activity 和用户界面开发
    • 可视界面
    • 界面资源定义
    • 输入事件
    http://www.devdiv.net
  • 19. 可视界面
    • 丰富的界面组件( TextView,WebView,List,Grid,Button,Checkbox,Radio,Dialog,Progressbar,Toast.. )
    • onCreate() setContentView()
    • 资源组织 ( 排版、图片、字符 -i18n)
    http://www.devdiv.net
  • 20. 界面排版
    • res/layout
    • xml 方式描述
    • LinearLayout
    • RelativeLayout
    • FrameLayout
    • 界面类
    http://www.devdiv.net
  • 21. Android 资源定义
    • 多分辨率支持
    • i18n 支持
    • 二进制文件支持
    • 被编译成 R 类
    http://www.devdiv.net
  • 22. Android 资源使用
    • 通过资源 ID 来访问定义好的资源
    • mBtnRecentCall = (Button)findViewById( R.id.button_recentcall );
    • versionName.setText( R.string.versionName );
    • LayoutInflater :从 xml 中读取一个 view 布局的方法。
    • View v = Inflater.inflate( resourceid , null);
    http://www.devdiv.net
  • 23. Android 视图结构
    • 跑题了, View 没讲。。
    • Layout 是一种 ViewGroup
    http://www.devdiv.net
  • 24. 数据和界面之间的绑定
    • Adapter 与 AdapterView
    • Gallery, ListView, and Spinner 是最常见的 AdapterView, 实际上是 ViewGroup, 他们的子 View 是通过 adapter 的 getView 来获得的。
    • 具体传递给 getView 的参数在不同的 AdapterView 里面是不同,这里不展开讨论
    http://www.devdiv.net
  • 25. 主动画图
    • 游戏可能需要
    • GLSurface
    • SurfaceView
    • 按照自己的帧率主动更新画面
    http://www.devdiv.net
  • 26. 输入事件
    • 屏幕触摸事件会通过 ViewGroup 下发到事件区域的 View 中
    • 要处理这些事件只要重载 View.OnClickListener 即可。
    • 如果是按键责重载 onKeyDown()
    http://www.devdiv.net
  • 27. Intent 的结构
    • 就是一个结构化的消息
    • Action ACTION_VIEW, ACTION_EDIT 等 自定义比如 &quot;my.pkg.action.SOME_ACTION&quot;
    • Data 数据内容
    • Type MIME 类型
    • Catetory 区分 Intent 类别
    • 系统特殊用途的 CATEGORY_LAUNCHER
    • 其他
    • Component 具体的类名
    • Extra (dict)
    • Flags
    http://www.devdiv.net
  • 28. Intent 带来的好处
    • 使得 Activity 的耦合度非常低
    • 组件可重用
    • IntentChooser
    http://www.devdiv.net
  • 29. Intent 例子
    • 打开网页:
    • 1. Uri uri = Uri.parse(&quot;http://google.com&quot;);
    • 2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
    • 3. startActivity(it);
    • 打开另外一个 Activity
    • Intent i = new Intent(this, BookList.class);
    • // i.setAction(&quot; areader.action.AREADER_BOOKLIST &quot;);
    • startActivity(i);
    http://www.devdiv.net
  • 30. Intent-Receiver
    • Intent 接收方
    • 还是 AndroidManifest.xml
    • <activity android:name=&quot;.BookList&quot;>
    • <intent-filter>
    • <action android:name=&quot;areader.action.AREADER_BOOKLIST&quot; />
    • <category android:name=&quot;android.intent.category.DEFAULT&quot; />
    • </intent-filter>
    • </activity>
    http://www.devdiv.net
  • 31. 生命周期 -Activity
    • OnCreate 创建
    • OnDestroy 消亡
    • onPause 保存数据
    • onResume 恢复数据
    http://www.devdiv.net
  • 32. 生命周期 -Service http://www.devdiv.net
  • 33. BroadCast Receiver
    • 这类组件用于接受广播,然后返回。
    • 广播组件在返回以后被视为非活动状态
    • 对于非活动状态的 BroadCast Receiver 的生命周期,这次不做探讨 ( 参考 /docs/guide/topics/fundamentals.html#lcycles) 。
    http://www.devdiv.net
  • 34. BroadCast Receiver 例子
    • 接受系统启动的广播,如来电通程序一定会这样做:
    • <receiver android:name=&quot;.BootReceiver&quot;>
    • <intent-filter>
    • <action android:name=&quot; android.intent.action.BOOT_COMPLETED &quot; />
    • </intent-filter>
    • </receiver>
    • public void onReceive(Context context, Intent intent) {
    • context.startService(new Intent(context, LocationService.class)); // 让 service 来做吧,我的生命周期结束了
    • }
    • 不但可以通过 manifest.xml 静态注册,还可以通过 registerReceiver 动态注册
    http://www.devdiv.net
  • 35. Service
    • 不带界面的逻辑
    • 支持远程调用其方法
    • 封装了 RPC 处理
    http://www.devdiv.net
  • 36. Service - 系统 Service 例子
    • mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    • mNM. notify (R.string.local_service_started, notification); // 直接调用其方法。一般来说 service 在另外一个进程
    http://www.devdiv.net
  • 37. Content Provider
    • 进程间共享数据
    • 通过 ContentResolver 访问
    • URI 的形式定位资源
    • Content Provider 的生命周期只在调用期间有效
    • 可以更新监视者
    • 例子 ,NotePad
    http://www.devdiv.net
  • 38. Widget
    • 通过 RemoveView 展示界面
    • 通过 AppWidgetProvider 来实现 update 消息接受,更新画面
    • <receiver android:name=&quot;WidPro&quot;>
    • <meta-data android:name=&quot;android.appwidget.provider&quot;
    • android:resource=&quot;@xml/appwidget_provider&quot; />
    • <intent-filter>
    • <action android:name=&quot;android.appwidget.action.APPWIDGET_UPDATE&quot; />
    • </intent-filter>
    • </receiver>
    • 通过 setOnClickPendingIntent(id,intent) 来指定点击时候的 Intent 。
    http://www.devdiv.net
  • 39. 安全性
    • 系统服务支持权限管理
    • 每个程序单独的用户 ID
    • 单独的目录
    http://www.devdiv.net
  • 40. Native Develop Kit
    • NDK 是被官方支持的,但只有源码的部分功能
    • windows 下面需要 cygwin 支持,基于 gcc cross toolchain 的编译环境
    • 支持 gdb 调试
    • 整合到 eclipse
    http://www.devdiv.net
  • 41. 更多需求
    • 引用源码路径
    • 不同的固件版本
    • cupcake/donut/eclair/froyo
    http://www.devdiv.net
  • 42. ADB 调试好帮手
    • 查看设备日志
    • adb logcat
    • 端口映射
    • gdb 远程调试
    • socket 调试 ..
    • 文件传输
    • 终端 adb shell
    http://www.devdiv.net
  • 43. 其他 API 集
    • Google APIs
    • 有没有人用过 ?
    http://www.devdiv.net
  • 44. 感谢
    • Q&A
    • 其实 android 很精彩,用过才知道
    • 终于结束了
    http://www.devdiv.net
  • 45. 还没结束
    • 联系 [email_address]
    • http://www.devdiv.net/bbs
    http://www.devdiv.net
  • 46. 参考:
    • 1. 公司内部 ppt, 同学们的帮助。
    • 2. http://developer.android.com/ 或者 SDK 本地文档,最大最全的资源库
    • 3. www.devdiv.net/bbs 牛人出没请小心
    • 4. google 关于 android 的几个 groups, 包括 android-developer,android-porting,android-internal 等,适合潜水
    • 5. Venus 神庙 android 分析作品集 http://flyvenus.net/?tag=android 写的很好,推荐看看,如果能把作者加为朋友那收获一定更大。
    • 6. http://wangstar.javaeye.com/blog/409115 抄了这里的 Animation 介绍,很详细欢迎参考
    http://www.devdiv.net
  • 47. 再次感谢
    • 还没结束
    • 后面演讲者的内容更精彩
    • 另外,期望下次和大家分享
    • android internals 关于 Binder/SurfaceFlinger/ActivityManager ..
    http://www.devdiv.net

×