导航:首页 > 操作系统 > android音频移植

android音频移植

发布时间:2025-03-10 00:14:27

A. 如何在iOS与android间移植APP

除了像"I am rich"这种定点打击苹果烧包族的APP外,大多数应用都会尽量覆盖包含尽可能多的用户。这就需要考虑在iOS和Android两种主流操作系统间移植的问题。如果为各个平台量身定做界面,就能让用户利用以往的使用习惯快速学习。但为多个平台设计各异的界面毕竟是需要工作量的。如何才能在跨平台移植的时候只做那些最有必要的工作呢?兵不打无准备之仗,先来看看iOS与Android间有什么差别吧。

1、物理键之返回

Android手机的基本设计思路是是把最常用的功能硬件化,所以就有了home,menu,back三个功能键(其实界面设计很简单啦,就是“用户到某个地方做某事”,所以就有了导航用的back和展开命令用的menu)。

乔老爷够狠,要求iOS设备只有一个物理键home(据说以后还会把这个键砍掉,用手势当home)。所以在iOS上,返回是通过title bar左侧的back按钮来实现的。但这样设计也有好处,因为这个back“软”键上的文本是可以改的。在这个按钮上填上上一次的题目,可以让用户明确地知道按下它会回到哪里。

2、物理键之menu

在android上,与当前页面相关的命令会收到由“menu”键唤出的菜单里。而在iOS上,这些命令会放在屏幕底部的toolbar上。这种展示方式相比android的优点是“能一目了然地看到能够对当前页面做的操作”。而在android上,必须按下menu键才能看到命令。你不希望用户在使用你的APP时肩负着把这些命令背下来的艰巨任务吧?

3、Android的加分项:通知系统

在iOS上,向用户推送信息的方式只有一种,就是alert box。这在iOS只支持单任务的时候还好说,提醒一来,哦…… 看完了就点确定。但到了多任务版本后就有点不合用了。虽然iOS的alertbox可以在用户使用某APP的时候弹出其他APP的提示,但这样未免太烦了。有时一些提醒并不需要强硬中断用户当前的操作,比如后台在下载的报纸下完了。Android有更精巧的Status Bar Notification和Toast Notification(详情可参看钟磊的手机系统消息通知设计的整理和分析和我写的如何为手机界面设计提示消息)。当要推送非紧急的消息时,Android平台可以使用更柔和的状态栏提示。

4、Android的加分项:长按操作

在Android上,当需要对一个对象采取一些操作时,可以长按,唤出相应的context menu(这是对一个项目的,如果是针对当前整个页面的操作,Android有menu物理键,iOS有toolbar)。但是在iOS平台上就不太有地方去放置针对屏幕上某一个对象的大量操作(一两个是可以的,放在项目旁边就O了)。可能在乔老爷看来,当需要对一个对象进行“炒、炸、烹、煮、蒸、熏、爆”的时候,就说明你想要的太多了。

5、iOS的加分项:右上角的快捷操作按钮

对于“右利手”用户而言,单手持机时屏幕左下角到右上角的连线是右手拇指的甜区。所以依照iOS的Guideline,当前页上最最最最最最最最最最最最最最常用的按钮应该放在titlebar的右端。

其实你会发现,清楚了这些差异之后,如何在平台间移植APP就清晰明了啦。

Android -> iOS

1、在每一级的标题栏左上角加上返回上一层的按钮。按钮名一定要是上一级的名称,不能用“返回”等无法透露回到哪里的文字。

2、由于iOS上没有menu键,所以需要将menu上的命令转化成toolbar上的图标。因此要额外绘制图标或者使用内置图标。

3、由于在iOS上没有“长按出context menu”的规则,所以需要给项目添加一个detail页面。不能在list页面操纵项目,那就再drill down一层呗。

4、由于iOS的通知方式只有alert box,所以诸如“下载完成”等提醒只能筛出重要的部分,用alert box传递。对次要提醒的设计可以看我之前的文章。

iOS -> Android

1、左上角的返回按钮拿掉。

2、工具栏上的命令可以放到menu里。

3、如果对某个对象的命令很多,可以为其设计长按的context menu

4、不是很紧急的提醒就不要用alert box了,可以换成status bar notification

5、标题栏右侧的高频按钮可以保留,这个在android上也可以通用。

其实总的来说,也就两点:

1、差异主要体现在导航方式和页面命令上,所以对于页面元素的布局基本没影响。尤其是对于全屏游戏这种基本没导航,控件又都摆在屏幕上的更是影响不大。

2、iOS对硬件的依赖更低。如果实在是小公司,赶时间,没精力跨平台移植的话,可以考虑只为iPhone设计,然后直接套到android上,凑活着也能用的。但android用户在使用时也会觉得有一点点怪怪的。

B. 如何学习和理解Android系统

我以前是做嵌入式系统开发的,对于平台比较熟,所以我的学习方向是从下往上进行学习,有相同工作经历者可以效仿一下吧:)个人认为其实就是三大块,分为移植-框架-应用1、android系统移植 其实这一块工作主要集成在android linux kernel 的驱动代码编写及android系统启动调试过程 。 对于android-HAL移植代码编写,其实android系统需要移植的模块较少(最精简的系统启动),只需要实现libgralloc模块,这块就是显示及显存分配的代码以及HDMI的启动高清输出。 需要熟练掌握的知识是linux驱动及android系统的启动过程会干哪些事情。以前写过相关的linux kernel及android 完整的启动流程。 只要熟悉清楚这些原理,就是解决启动过程中的问题,基本上移植android系统不会有太大的问题,只要启动了原始的android系统后面就是完善及优化系统了。 深入研究过三个平台代码(海思,ST及博通)的android代码与原始android系统代码,基本上都是这么做的。 这里推荐 --- 移植与调试 ,可以对android的外围设备及相关移植内部有一定的了解,碰到问题多问问google,可能其它朋友也碰到过,当然也可以找你一起讨论解决。2、框架层代码学习 这块代码需要熟悉几个android的几个重要概念: Binder (IPC通讯), Service 服务 ,Zygote 等等 紧接着就是研究大的模块代码,如SurfaceFlinger , AudioFilnger , Media(这块还一直没有时间看,很遗憾) 等,下一个计划就是研究media媒体播放这块,以前做过本地播放应该会减小很多的学习时间,知识的本质是相通的。 浏览器及虚拟机这块也是个大头,目前开发没怎么用到,所以也没有去怎么接触和了解,说不上好的建议 这里推荐 系统篇,写的特好,更多的内容见博客,网上很多牛人呀。3、java应用程序 这一块代码的编写,最好的教材就是 android SDK ,这些api有详细的介绍及用法,与msdn媲美。

网上摘抄。。

C. 请教关于android移植的问题

一、概述

移植的工作一般的主要不外乎做以下这些事情:

A、有的现成好的直接选配

这个工作主要是熟悉该源码编译系统,就是源码自动化编译是怎么组织的。Linux环境下不外乎是Makefile及脚本。所以得熟悉这两个方面的知识。

B、有的不好的代码修改好后选配

这个工作不仅仅是要熟悉编译系统,还要熟悉别人的代码结构。一般牛X的软件架构也牛X,所以主要是学习牛X的人设计的代码结构,所谓的框架。框架懂了,再熟悉里面的细节,就可以改了。

C、添加新代码并选配

这个工作同样要熟悉编译系统及源码结构。这个时候对框架可能不能仅仅限于知道,而且要深刻理解,按照牛人的思路来设计代码。

所以Android的移植就可以简单的说成有以下方面的工作:

A、熟悉android的编译系统

主要是.mk文件的规则,这个官网及源码中有文档说明(development/Ndk/Docs/android-mk.txt),得好好研究清楚。

就源码中的脚本,譬如:build/envsetup.sh

B、熟悉android的源码目录结构

system:根文件系统相关的一些代码

packages:android的一些APP的源码

frameworks:framework层代码,不改动android源码的话,主要就是app层调用hal层代码的接口实现的源码

hardware:hal层代码

devices和vendor:厂商定制代码

build:编译系统的一些mk文件

out:是编译输出目录

主要的一些目录就是上面了,对于初学的话,差不多就足够了。当然所有的都熟悉是最好了。

C、三个层次的代码

要向android添加代码的话,一般主要熟悉三个层次的代码就差不多了。

APP<--->framework<--->HAL

APP:应用程序层次,主要是Java代码,通过跨平台的java编写的代码来完成需求逻辑对系统提出功能性要求,让系统去完成相应的动作。

framework:cpp代码,主要是提供给java调用的接口,这些接口通常是去调用到hal层的代码。

HAL:登记一组供framework回调的函数,来完成一定的功能。

阅读全文

与android音频移植相关的资料

热点内容
编程英文注释 浏览:975
天正关于遮罩的命令是啥 浏览:629
电脑加密后显示文件在哪 浏览:859
vs设置文件不编译 浏览:59
单片机怎么焊3v电压 浏览:955
王峰教你记单词pdf 浏览:579
福昕pdf账号 浏览:18
linuxcpf 浏览:313
pdf转换word乱码怎么办 浏览:548
点命令怎么变成坐标输入 浏览:265
小鹏汽车上传30万份源码 浏览:237
宠物商城源码公司 浏览:784
招商银行app怎么换版本了 浏览:668
自解压是什么原因 浏览:867
beeprog编程器驱动下载 浏览:30
服务器为什么那么差 浏览:775
民国机要文件夹 浏览:768
cmd移动文件命令 浏览:56
没有新建文件夹选项怎么办 浏览:844
程序员送外卖好做吗 浏览:678