android系统与android在机顶盒中的应用

上传人:xzh****18 文档编号:55762722 上传时间:2018-10-06 格式:PPT 页数:50 大小:1.77MB
返回 下载 相关 举报
android系统与android在机顶盒中的应用_第1页
第1页 / 共50页
android系统与android在机顶盒中的应用_第2页
第2页 / 共50页
android系统与android在机顶盒中的应用_第3页
第3页 / 共50页
android系统与android在机顶盒中的应用_第4页
第4页 / 共50页
android系统与android在机顶盒中的应用_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《android系统与android在机顶盒中的应用》由会员分享,可在线阅读,更多相关《android系统与android在机顶盒中的应用(50页珍藏版)》请在金锄头文库上搜索。

1、Android系统与android 在机项盒中的应用, 软件一部 李义才2011.08.01,内容提要,Android系统特征及相关技术 Android系统中扩展DVB电视业务 使用skhdi/skyapi支持DVB业务 面向机顶盒产品定制Android系统 Android系统中应用开发的相关技术,1. Android系统特征及相关技术,Android系统概况 Android系统版本 Android系统开发 Android系统的优缺点,1.1 Android系统概况,最流行的手机开发平台,包括操作系统、中间件和一些关键应用的软件堆栈。软件叠层架构: 内核层 系统库及运行时环境层 应用框架及应用

2、程序层,1.1.1 Android内核,基于Linux核心的软件平台及业务系统,系统内核依靠Linux2.6版的核心系统服务 除Linux标准驱动外,需要一些专有驱动,如Binder、Log、Ashmem,1.1.2 系统库及运行时环境,Android包含多种嵌入式函数库被系统中不同的组件使用,通过应用程序框架为开发者提供服务。主要的核心库有 :系统C/C+、媒体、2D/3D图形引擎及图形管理、浏览器引擎、数据库、字体等 。 Dalvik虚拟机:基于寄存器依赖Linux内核、同时运行多个实例、执行.dex文件,1.13 框架及应用,应用框架则是可重用的软件组件,简化应 用程序的开发,向应用提供

3、API。 应用程序是带GUI的程序,包含各种资源,基于框架层的API。 用Java语言编写。,1.2 Android系统版本,已经发布的重要版本: Android 1.1:发布于2009 年2 月 Android 1.5 Cupcake:发布于2009 年 5 月 Android 1.6 Donut:发布于2009 年 9 月 Android 2.0/2.1 Eclair:发布于2009 年 10 月 Android 2.2 Froyo:发布于2010 年 5 月 20日 Android 2.3/2.4 Gingerbread:发布于2010 年12月 Android 3.0 Honeycom

4、b:发布于2011 年 2 月,1.3 Android系统开发,Android系统开发三个层次: Android系统移植开发 Android子系统开发 Android应用程序开发,1.3.1 Android系统移植开发,Android系统移植开发涉及: 内核层的移植 :Ashmem 、Logger 、Binder 、Pmem 、Low memory killer 。 CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_LOGGER=y 设备驱动 :Linux标准设备驱动程序 。 系统启动过程修改 :init进程与Init.rc

5、。 Dalvik虚拟机:目前支持的CPU:ARM、X86、MIPS 。 图形加速及硬件编解码支持,1.3.3 Android应用程序开发,应用程序使用Java语言开发,程序如游戏开发、 播放器开发等。 应用程序开发两种环境: 基于Android源代码的SDK:只能在Linux下 基于Android SDK: Linux或Windows中的IDE下 (Google提供的SDK包含Android系统映像、模拟器和相关工具,只需要了解系统API,只能开发应用程序),1.3.2 Android子系统开发,Android子系统开发涉及各个层面: 封装所使用到的硬件抽象层代码 增加C/C+本地业务库 定义

6、Java层所需要的类(系统API) 将本地业务库的功能接口封装成JNI 结合Java类和JNI 提供应用程序调用的Java框架类,1.4.1Android系统的优势,完全开放的系统,吸引越来越多的厂家和消费者,将崔生众多硬件支持和程序选择。 无缝结合google应用,如Google地图、邮件、搜索等互联网的重要服务。 开源软件系统,功能强大,众多支持软件,如webkit浏览器、播放器、FLASH等。 高效的JAVA虚拟机Dalvik,支持JAVA,速度快。,1.4.2Android系统的劣势,版本更新快,如何保持前后兼容 完全开发的系统,如何保持不同厂家之间兼容 Android3.0及以后的版

7、本是否会象之前一样完全开放 与ORACLE间Java专利诉讼案 其它公司的专利侵权诉讼,如微软、苹果等,2. Android系统中扩展电视业务,Android多媒体系统介绍 Android中广播流播放过程设计 DVB播放特点及播放过程优化 扩展DVB业务 机顶盒应用开发,2.1 Android多媒体系统,Android多媒体业务目前主要有: Music Player(音频播放器) Video Player(视频播放器) Camera(照相机) Sound Recorder(录音机) Camcorder(摄像机) Video Metadata(媒体元信息),Android多媒体系统的宏观结构,J

8、AVA类:frameworks/base/media/java/android/media/java 实现的JAVA包是android.media,实现了mediaplayer、mediarecorder等几个重要的类。 JAVA本地调用部分(JNI):frameworks/base/media/jni/;这部分内容编译成libmedia_jni.so 。 多媒体框架的media库:frameworks/base/media/libmedia/;这部分的内容被编译成库libmedia.so。 多媒体服务:frameworks/base/media/libmediaplayerservice 这

9、部分内容被编译成库libmediaplayerservice.so。利用它实现的frameworks/base/media/mediaserver是一个可执行程序,用于启动一个多媒体的守护进程。 多媒体的实现:Android中使用OpenCore (/external/opencore/)和StageFright (frameworks/base/media/libstagefright)两个库实现媒体播放。,Android多媒体系统的层次及模块,Android媒体播放器框架,PVPlayer的结构,StagefrightPlayer的结构,2.2 Android中广播流播放过程设计,重新设计

10、DvbMediaPlayer & MediaPlayer ? 广播流的播放融入现存的MediaPlayer体系 (融入更利于应用程序开发,操持一致性),2.2.1 统一广播流播放时资源表现形式,应用层广播节目播放时资源形式即URL为: dvb:/+”频点信息”+”节目信息” 具体实例:dvb:/435000.6875.64/live?aud=mpeg.1922;vid=mpeg2.1921;pcr=1921;dvb:/+”节目号”具体实例:dvb:/serviceid=123(前提是底层有节目数据库支持),2.2.2 广播流播放器实现,参考PVPlayer和StagefrightPlayer的

11、结构在 MediaPlayService中继承MediaPlayerHWInterface 实现DvbMediaPlayer,class DvbMediaPlayer :public MediaPlayerHWInterface public: DvbMediaPlayer();virtual DvbMediaPlayer();/*解析DVB的URL资源获取频点信息、播放节目的PID数据及相关数据,并保存供后面使用;或通过节目从DVB业务中查询得到节目信息*/virtual status_t setDataSource(const char *url, const KeyedVector *h

12、eaders); virtual status_t setVideoSurface(const sp ,广播流播放时PLAYER调用过程,2.3 DVB播放特点及优化,硬件解码,不需要软解 编码数据流解码后直接显示硬件输出,不需要在图形层Overlay 解码与显示输出不需要外部再进行数据流重新转换、分配、连接 设备底层的操作经常需要root身份 不需要OPENCORE复杂体系,适合DVB平台的StagefrightPlayer结构,2.4 Android中扩展DVB业务,需要支持的业务: 节目搜索 EPG服务 数据广播 节目播放 (涉及底层驱动、C+底层业务、DVB框架、 JAVA框架及应用,

13、可参考多媒体系统实现),2.5 机顶盒应用开发,采用Android应用程序,Java编程+资源+工程文件 直接用Java语言+XML描述资源,实现方便、灵活 可展现多样性,容易展示炫丽的图形效果 可APK程序可下载、安装 需要在Java框架层实现DVB所有功能 扩展JS对象通过浏览器实现机顶盒应用 程序简单,方便更新 扩展的JS对象一旦实现,一劳永逸 不需要在Java框架层实现DVB 应用展示全部通过HTML+JS实现 1.利用JAVA对象通过WEBVIEW注册实现JS扩展:方便、能双向调用 2.通过C/C+对象在脚本引擎中注册实现JS扩展:通用、直接,3. 使用skhdi/skyapi支持D

14、VB业务,平台程序SKYAPP特征 移植SKHDI/SKYAPI 可能存在的问题,3.1 平台程序SKYAPP特征,3.2 移植SKHDI/SKYAPI,SKHDI整体进入Android环境,需重新编译 SKAPI部分进入Android环境,需重新编译 skyapi_dm、skyapi_dvbsi、skyapi_si_service、skyapi_search、skyapi_epg_service、skyapi_pvr、skyapi_uart、skyapi_filemage、skyapi_player、skyapi_sysctl、skyapi_time_timer、skyapi_util、sk

15、yapi_flash 初始化过程类似于平台程序,3.3 可能存在的问题,数据的存储与访问 :DM不支持SQL及单进程特性,如何使用ContentProvider 信息通讯与及时性: 多层次多跨进程的数据通讯 API的安全性: 原来单进程简单调用到向多进程提供服务 如何支持CA:需要集成CA的,目前没有参考,需要CA厂家的协作,4. 面向机顶盒产品定制Android系统,裁减系统中DVB产品无关的业务及应用 修改相关业务符合DVB产品的习惯 正确映射遥控器输入按键及集成适合遥控器的输入法 增强大屏幕图形显示效率及速度 集成CA支持,5. Android中应用开发的相关技术,Android的应用程

16、序构成 Android应用程序包含的内容 Android程序开发思想,5.1 Android的应用程序构成,活动(Activity) 广播接收器(BroadcastReceiver) 服务(Service) 内容提供器(ContentProvider),5.2 Android应用程序包含的内容,Android.mk:统一工程文件,工程编译时指定工程的一些属性。用SDK在Eclipse环境开发中可以不需要; AndroidManifest.xml:工程描述文件,其中定了程序中使用的各种组件,这对每个程序都是必要的; Java源代码:按照Java包的方式来组织目录结构,包含了Java类的源代码;

17、资源文件:包含XML文件、图片、原始数据文件等, 其中Layout目录下有 界面布局的文件,String目录下有表示文字、字符描述的文件;,5.3 Android程序开发思想,Java程序思想 资源的思想 工程描述文件思想 工程描述文件、代码、资源三位一体 安全性和权限,5.3.1 Java程序思想,面向对象的程序设计,应用设计方法 大部分java程序做一定修改可在Android上运行 Android上的java程序与J2ME/J2SE的程序有不同: Intent带来意何驱动的开发模式:Itent具胡跨进程、使用灵活的特性。 Binder带来高性能的进程通信。 提供参数选项(Preferences)、文件(Files)、数据库(Database)、网络(Network)4种机制存储数据,并且通过ContentProvider对外提供一致的数据访问接口。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号