liliyuo
驱动牛犊
驱动牛犊
  • 注册日期2009-09-09
  • 最后登录2009-09-10
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2915回复:15

C++音频解码编程技巧讨论

楼主#
更多 发布于:2009-09-09 19:04
C++在大规模、高性能计算,游戏开发、嵌入式应用开发,以及传统的客户端软件和构件开发中是十分强大的。如今智能手机市场发展,一日千里,手机机能的提高,智能手机普及率的扩大,3g时代的来临,手机已经成为微型移动计算机了,各大移动厂商已经把手机系统平台之争看做手机的未来之争,占有移动平台的优势,谁就占有了未来,在智能手机平台,各种中高级的应用会层出不穷,C++的地位会更加巩固,作用会大大的发展。

目前中国三大运营商为了抢占3G平台的先机,现在都加强与终端厂商和软件厂商的深度合作,建设自己的手机系统平台。

Google公司08年推出Android手机操作系统,基于Linux2.6开放平台设计,并不断丰富完善。Android平台的图形渲染能力比其它几家强,同时还内置了Google 的Gmail,Gtalk等原有业务,能看出在国外市场,用惯Google的用户,会感到设计很贴心。

随后,中国移动推出了Ophone OS开放智能操作系统平台,也是基于Linux 2.6,兼容Android的所有应用,这样首先保证了一定数量的应用软件可提供用户。同时,还内置了中国移动的全部增值服务,为用户提供更丰富的应用体验。这里还包括MMarket(网上软件下载商店),专门向中国移动将近5亿的手机用户销售个人软件作者的各类手机应用软件,7:3分成,个人作者可以拿7成。这可以说是我们工程师的福音,多了条子创业之路。中国移动还有众多的商业客户,行业OA办公软件系统的市场也不可小靚啊。所以,Ophone未来给大家带来的发展机会,值得关注。

Android和Ophone OS的开发语言C/C++,Java,这个正是他,他们架构的绝妙之处,众所周知,C/C++是老牌语言在中低层的应用开发中游不可替代的地位,但开发效率的问题一直是他天生的缺点,Java可以说天生就是来弥补C++的不足的,在高层的业务开发中java是很强的力量,PC机的很多领域只能用C/C++来开发,这对于目前手机操作系统硬件低等原因来说,C/C++必定是不二的选择,而Java来讲,和硬件关系不密切,不过安全性很高,怎么样才能把这两种语言有机的结合在一起呢

JNI在平台应用情况和好处
我们首先介绍一下java的性能问题,Java程序其本身的缺陷,那就是其效率问题。由于Java是一种介于解释型和编译型之间的语言,其对内存的管理是通过JVM虚拟机来实现的,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快得多,这就迫使开发者寻求一种java和C/C++相结合的模式来弥补彼此的不足,于是JNI(Java Native Interface,Java本地化方法)技术运用而生, 目前JNI技术在很多平台上如wince/mobile,linux,symbian都有了很大的应用,不过在这些平台上并没有发挥JNI技术的绝对优势,为了让JNI技术能够发挥出自身的绝对力量,于是Ophone OS系统制定出来完美的解决方案

下面我就通过在Ophone平台上的多媒体实例来讲一下C/C++与java是怎么结合工作的

Ophone OS的OpenCore模块概述
OpenCore的另外一个常用的称呼是PacketVideo,它是Ophone OS的多媒体核心。OpenCore是这套多媒体框架的软件层的名称。在Ophone OS的开发者中间,二者的含义基本相同。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。

多媒体框架在Ophone OS系统中的位置(红包标记)


从框架图可以看出多媒体处理Libraries层,这说明Ophone OS的媒体层是通过os方式供上层使用,实际上一般都是用c/c++来实现,然后层过上层语言,比如Java的JNI方式去调用
媒体的编解码库使用了OpenMAX 1L interface接口进行展,这使得和具体的硬件不相关,为厂家的移植带来了方便
OpenCore本身集成了目前流行的媒体格式,如本地文件3GP,MPEG-4等等,在线播放的http,rtsp/rtp流媒体协议

配套的Ophone OS源码OpenCore模块源码下载
Ophone OS开源项目是用Git进行版本控制的,大家可以到http://code.google.com/p/msysgit/downloads/list 上下载Git-1.6.4-preview20090730.exe,然后安装,安装完运行开始菜单->Git->Git Bash,会出现一个dos窗口,输入git clone git://android.git.kernel.org/platform/external/opencore.git回车,下载完成后的源码在C:\Documents and Settings\Administrator\opencore目录,当然大家也可以自己创建一个空目录,运行Git,在Git提供的shell,切换路径到你刚才创建的目录下(cd命令)


下面我们对PVPlayer进行简单的说明

下面是通过JNI方式调用
MediaPlayer mp;
mp = MediaPlayer.create(this,xxx.mp3);
mp.prepare();
mp.start();
以上的简单的一个播放mp3格式的程序,他的巧妙之处在于,Ophone是基于Linux平台的开源手机操作系统,提供了软件开发,所以Ophone手机的内部核心依然是linux, 不过Ophone提供了比Linux更为安全的开发模式,Linux支持c++上层开发,这样就会使得一些不良开发者,借助这一有利优势,开发一些恶性操作,不过Ophone系统屏蔽这一缺陷,有过C/C++开发底层,java通过JNI的方式来调用,这样即不失C/C++的高效率,又同时增加了系统的安全性,使得jni技术实现跨平台开发同时兼顾效率的有效方法


学习网站
Android可以去这里看看http://www.android.com。开发经验交流内容已经很丰富了。

对Ophone有兴趣的读者,可以登录http://www.ophonesdn.com 网站,一个提供开发指导不错的网站,是中国移动在OphoneOS上的官方网站,而且正在举行发帖赢活动。现在是3G疯行的时刻,平台手机开发人员紧缺,这个时机大家有一定要把握啊。我不想独享,特地和大家分享一下啊
devier
驱动牛犊
驱动牛犊
  • 注册日期2009-09-11
  • 最后登录2009-09-11
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-09-11 11:02
。。。。真的很神奇貌似。
caicmt
驱动牛犊
驱动牛犊
  • 注册日期2009-09-14
  • 最后登录2009-09-14
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-09-14 11:35
一直为Java的低效率发愁,现在好了,原来Java在OphoneOS系统上用处这么大,以后要好好研究一下
dfgyh
驱动牛犊
驱动牛犊
  • 注册日期2009-09-14
  • 最后登录2009-09-14
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-09-14 19:04
原来Java在OphoneOS系统上用处这么大
sun356
驱动牛犊
驱动牛犊
  • 注册日期2009-09-17
  • 最后登录2009-09-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-09-17 16:28
简单的了解了一下ophone,ophonesdn网站上面介绍得这么细,应有尽有,无论是入门文章,还是深入研究都有很丰富的帖子,
wehgig
驱动牛犊
驱动牛犊
  • 注册日期2009-09-20
  • 最后登录2009-09-20
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-09-20 12:00
Ophone Os的图形引擎根据自己的需要, 实现各种图形图像的特效处理的并形成native(c++)组件,让java层通过JNI调用。丰富自己软件的功能并实现高效率运算。
mengyuopp
驱动牛犊
驱动牛犊
  • 注册日期2009-09-24
  • 最后登录2010-08-02
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-09-24 17:33
Ophone Os的图形引擎根据自己的需要, 实现各种图形图像的特效处理的并形成native(c++)组件,让java层通过JNI调用。丰富自己软件的功能并实现高效率运算。
a13130945
驱动牛犊
驱动牛犊
  • 注册日期2009-09-20
  • 最后登录2009-10-19
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-09-26 15:09
最近Android 发布了 Native Development Kit (NDK) 可以在平台上 用C++来开发了。 Ophone OS据说很快也要支持NDK,对C++程序员是大福音了。
wsc123
驱动牛犊
驱动牛犊
  • 注册日期2009-09-08
  • 最后登录2009-10-24
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-10-06 17:16
Ophone OS SDK 提供的java API已经非常强了,相对于一般手机Kjava 和 其他手机提供的 java sdk的总和了,而且还有C++写JNI来补充功能,真是相当不错的平台。
wsc123
驱动牛犊
驱动牛犊
  • 注册日期2009-09-08
  • 最后登录2009-10-24
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-10-08 10:59
挺不错哦的看来我要好好学习了
wsc123
驱动牛犊
驱动牛犊
  • 注册日期2009-09-08
  • 最后登录2009-10-24
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-10-12 11:43
移动开发必然是未来发展趋势,同时关注。
a13130945
驱动牛犊
驱动牛犊
  • 注册日期2009-09-20
  • 最后登录2009-10-19
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2009-10-13 11:40
touch触屏是主流。才对。Iphone为啥那么好,主要是软件应用很强。
wsc123
驱动牛犊
驱动牛犊
  • 注册日期2009-09-08
  • 最后登录2009-10-24
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2009-10-16 14:45
移动有钱推ophone,联通更有钱推iphone。用自己员工工资款推。多下血本,比移动牛X多了。
a13130945
驱动牛犊
驱动牛犊
  • 注册日期2009-09-20
  • 最后登录2009-10-19
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望111点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2009-10-19 17:19
要说从C++整到移动上,绝对不轻松的事情。现在移动开发还是集中于2G傻瓜系统symbian。智能机在全球数量的增加与被人们的热捧。Symbian系统本身已经很难满足现在智能机的要求了。目前最主流的开发系统就是Android OphoneOS IphoneOS,但国内这三种平台开发个人或团队都不多。何况iphone最具优势的软件应用在中国还没发商用。不知道拖到什么时候,最具发展潜力的还是android 和ophoneOS
wsc123
驱动牛犊
驱动牛犊
  • 注册日期2009-09-08
  • 最后登录2009-10-24
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2009-10-22 14:50
移动市场的趋势流行化,让我们更加关注移动市场。国内ophoneOS 国外ANDROID。你要说Iphone哪去了。对不起,我不想给苹果那99欧元。
wsc123
驱动牛犊
驱动牛犊
  • 注册日期2009-09-08
  • 最后登录2009-10-24
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2009-10-24 21:47
说到系统,洋鬼子的东西肯定不如土生长的待遇好。iphone现在不能质疑的是全球第一。但只是全球,不代表中国的。
自古商贩不怕横的不怕黏糊的,就怕当官的。什么事儿一挨着政治。就没了边了。
Ophone和iphone系统在华的发展,就是如此。
游客

返回顶部