您当前的位置:首页 > 互联网教程

Android应用开发和底层开发哪个更有前途

发布时间:2025-05-13 08:30:05    发布人:远客网络

Android应用开发和底层开发哪个更有前途

一、Android应用开发和底层开发哪个更有前途

不是很清楚你说的前途是什么?多赚钱 or技术达人 or两个平台的发展前景? 1、很大程度,吸金看产品不看平台,多数产品会每个平台都做,好产品才能赚钱。 2、技术上讲, iOS基于unix, android基于linux,都是基于POSIX标准的系统,很多底层功能都是类似的。但iOS封闭,限制了很多功能,android是开放的,自由发挥程度很大。应用开发上, iOS的SDK封装得不错,用objective-c开发还是蛮方便的,android用java开发难度也不大,但设备多、系统版本多、商城多,经常一个软件得放出n多版本的安装包。应该说做android可以玩得更深。 3、哪个平台以后会更大众、更流行:我觉得android。现在iphone系统的性能、用户体验都比android好很多,但随着设备发展,android的这些问题会好起来,而且android系统开源、做的厂家多,以后android手机的市场会更大,android的软件也就更赚钱了。

二、怎样学习android底层开发

Android底层开发技术实战详解——内核、移植和驱动

Linux Kernel的版权是GPL(General Public License),它要求对源代码的任何修改都必须开源。

Android的Kernel采用的GPL,但Android采用ASL(Apache Software License),不必开源。

Google特意修改了Kernel,将某些功能转移到上层HAL(Hardware Abstraction Layer)中。

因此,从2010年2月,即Linux2.6.33起,Android Kernel已经从Linux Kernel中删除。

1、Goldfish,它是由Google提供的一种虚拟的ARM处理器,在Android的仿真环境中使用。

2、MSM(Mobile Station Modem),它是由美国高通(Qualcomm)公司提供的ARM处理器芯片组。

3、OMAP(Open Multimedia Application Platform),它是由美国德州仪器(Texas Instruments,简称TI)公司提供。

1、专用驱动,非Linux标准,纯软件

三、如何入手学习android 底层开发

基于Android的CPU+GPU的异构编程开发,目前主要有以下几种平台:

在桌面系统和大规模并行计算领域被普遍使用的一种底层API。最近一段时间,主流的芯片厂商的旗舰或准旗舰芯片都开始支持OpenCL1.1或者1.2标准,包括高通,三星,联发科,Rockchip等厂商的芯片,都可以找到OpenCL的支持。

目前只有NVIDIA自己出的基于Tegra K1芯片的设备(NVIDIA Shield)支持CUDA,所以支持的面比较窄。

Google力推的异构编程,宗旨是由平台帮你选择运行的处理器,也就是说你是不知道你的程序跑在CPU还是GPU上的,这是由系统的驱动来决定的。想法是美好的,可现实是开发者并不买RS的帐,大家觉得RS的性能不可控,灵活性太差,其文档之缺乏也被人诟病;此外,芯片厂商对于RS的优化都还普遍处于比较低阶的水平,这些都导致了RS在实际应用中很少被用到。

由于OpenCL的普及程度,以下部分只针对OpenCL展开。

高通几乎全系的GPU,包括但不限于以下GPU(Adreno 305, 320, 330, 405, 420, 430, 530...)

ARM Mali的6系和7系GPU,比如T628, T760

2014年以来较新的Imagination PowerVR GPU,比如G6430

2.支持OpenCL的芯片。以下是一个很粗略地列举了主要的支持OpenCL的芯片。

高通8064, 8974(骁龙800,801), 8084(骁龙805), 8994(骁龙810)等

三星 Exynos猎户座 5420, 5433(内置ARM Mali GPU)

联发科 MT6752(内置ARM Mali T760 GPU)

瑞芯微 RK3288(内置ARM Mali GPU)

3.支持OpenCL的手机和平板。这个就数不胜数了,下面只随手给出几个例子以供参考。(注意:Google Nexus系列的手机或平板,虽然硬件上支持OpenCL,但因为删掉了OpenCL的驱动程序,所以基本都不支持OpenCL;值得注意的是,据国外blog上报道,可以将相应的OpenCL驱动推送回设备以重新开启OpenCL的支持,详见maxlv.net的页面)

三星 Galaxy S4, S5, S6, Note 3, Note 4

如果不确定手头的设备是否支持OpenCL,可以使用OpenCL-Z Android进行检测,这款软件可以显示详细的OpenCL的设备信息,同时运行micro-benchmark检测设备的计算能力。下载链接:

Google Play OpenCL-Z- Google Play上的 Android应用

豌豆荚:「OpenCL-Z」安卓版免费下载

开发的步骤(篇幅所限,这里只是步骤的精简版本,只阐述操作,不进行解释):

1.编写OpenCL的C/C++程序实现GPU的核心计算代码

2.用Android NDK编译之前写的C/C++代码。这一阶段可以在纯C/C++环境下工作,可以编写main函数测试实现的功能,用NDK将代码编译为可执行的代码(BUILD_EXECUTABLE),然后用ADB将可执行程序推送到设备上运行。运行可执行程序要求设备具有root权限,如果没有root权限,可以通过Native Program Launcher(AndroidNativeLauncher· GitHub,可能需要翻墙)这一工具在设备上执行二进制代码。

3.上一阶段测试结束,功能基本正常。开始编写JNI接口。

4.开始编写Android应用程序,使用JNI封装native函数。编译C/C++代码成动态链接库。

5.在Android程序里,以静态方式加载上一步编译的动态链接库。

6.在需要的地方(比如点击按钮事件),调用相应的native函数,即可实现相应的功能。

以上步骤可能看着有些抽象,不用担心,跟着下面几个教程走一边,你就会明白每一步在做什么。