⑴ android 底层语言是什么如题 谢谢了
基本的开发是用的java语言,但一些底层功能可能需要JNDI连接C或C++(linux下的)来写
⑵ 安卓底层开发能做什么
android底层?
你是指的是android平台代码开发还是希望对android的脚本,版本控制方面的开发?
如果是android平台代码的开发:
到google网站下载source code,一点点开始研究底层的代码 Java基础就可以
如果想脚本,版本控制或者android底层的C代码的开发:
那就需要你对C很精通对android的源码结构非常了解,而且JNI等等技术你都要明白
⑶ 如何入手学习android 底层开发
android 底层开发学习:
一、基于Android的CPU+GPU的异构编程开发,目前主要有以下几种平台:
1. OpenCL
在桌面系统和大规模并行计算领域被普遍使用的一种底层API。最近一段时间,主流的芯片厂商的旗舰或准旗舰芯片都开始支持OpenCL1.1或者1.2标准,包括高通,三星, 联发科,Rockchip等厂商的芯片,都可以找到OpenCL的支持。
2. CUDA
目前只有NVIDIA自己出的基于Tegra K1芯片的设备(NVIDIA Shield)支持CUDA,所以支持的面比较窄。
3. RenderScript (RS)
Google力推的异构编程,宗旨是由平台帮你选择运行的处理器,也就是说你是不知道你的程序跑在CPU还是GPU上的,这是由系统的驱动来决定的。想法是美好的,可现实是开发者并不买RS的帐, 大家觉得RS的性能不可控,灵活性太差,其文档之缺乏也被人诟病;此外,芯片厂商对于RS的优化都还普遍处于比较低阶的水平,这些都导致了RS在实际应用中很少被用到。
二、由于OpenCL的普及程度,以下部分只针对OpenCL展开。
目前支持OpenCL的设备和芯片
1. 支持OpenCL的GPU
高通几乎全系的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
LG G2, G3, G4
HTC One M7, M8, M9
小米使用高通芯片的手机和平板
魅族M1 Note
台积电P90HD
等等等等。。。。
如果不确定手头的设备是否支持OpenCL, 可以使用OpenCL-Z Android进行检测,这款软件可以显示详细的OpenCL的设备信息,同时运行micro-benchmark检测设备的计算能力。
三、需要掌握的知识:
1. 简单的GPU基本知识
2. OpenCL并行程序设计
3. Android NDK知识
4. Android JNI接口的编写
5. 简单的Android程序开发知识
四、开发的步骤(这里只是步骤的精简版本,只阐述操作,不进行解释):
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函数,即可实现相应的功能。
⑷ 安卓底层开发 linux
驱动都是使用C写的,所以你想搞底层驱动开发,你要有一定的C基础。对于开发驱动来说,Windows系统是非常不适合的,特别是Android本身就是Linux内核,所以你也要掌握Linux操作系统,比如脚本的编写,C代码的编译等等。
请采纳答案,支持我一下。
⑸ 怎样学习android底层开发
Android底层开发技术实战详解——内核、移植和驱动
Android与Linux的关系
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、字符设备
2、块设备
3、网络设备
两种驱动类型
1、专用驱动,非Linux标准,纯软件
2、设备驱动
⑹ 安卓底层开发前景怎么样
关于安卓开发:Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。
从现在安卓手机和iOS手机的销量来看,占据了市场的绝大部分,在结束了塞班时代,在winphone还没有被问世之前,安卓可以说就已经很火了。安卓开发培训几乎是一时间火速兴起的产业。
目前IT行业中的,Android应用软件,Android手机游戏,发展迅速,据报导安卓系统占中国智能手机90%的市场份额,面对这么大的市场,Android开发市场受到投资者,创业者的关注,相关的新兴公司很多。但是目前从事这项技术开发的人员很少,所以目前人才需求量比较大,好就业。
Andriod移动开发工程师就业行情之人才需求:
1、硬件驱动方向;2、软件应用。就目前人才需求来看,偏向软件应用岗位的需求更多,包括手机游戏、手机终端应用软件和其他手机应用软件的开发,具某求职网站数据显示目前企业对这类应用软件的Android开发人才占总需求的70%左右。
据不完全统计:从2013年开始热招的Android技术相关岗位约有5120个,而一个月内的有效岗位量在3070个。主要热招职位包括Android开发工程师、Android软件工程师、Android应用开发工程师、Android手机游戏开发、Android系统软件开发、Android程序员、Android游戏应用版本管理、人机交互分析工程师、Android中间层开发工程师等。
人才供应:由于目前Android技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。
从长期来看,随着各种移动应用和手机游戏等内容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此andriod移动开发工程师的就业前景也非常广泛。
PS
★月薪:
1年经验:大概7000~8000;
3年经验:一般10K以上,不同公司不同行业,相差比较大;
目前国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用以及游戏开发
Android的开发采用了Java语言,有一些编程语言(如C/C++/Java等)训练的,都可以考虑学习Android应用开发。希望从事Android游戏开发,最好能在高数、离散数学甚至计算机图形学等方面有比较扎实的基础。后续想往底层开发如系统移植、驱动开发等方向发展,应更好地理解Android 应用架构体系,具备一定的操作系统知识。
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢
⑺ 一个Android偏底层开发人员,对发展很迷茫,我该怎么发展
个人认为做BSP一般分成两种:bring up和porting。一般做产品的基本上都没有机会做bring up工作。做bring up一般都是方案商或者芯片厂商。
以下分析下做porting让人迷茫的原因:
做porting的确会让人迷茫,因为在这个过程中我们需要改动的代码其实不多,面临整个产品的BSP porting工作时,我们需要熟悉kernel / android HAL / android framework各个子系统,但子系统太多导致我们可能没法精通所有的子系统。譬如 kernel中的usb 的枚举过程、pcie设备的枚举过程、ALSA中如何加入新的 audio codec驱动、V4L2中如何添加新的camera sensor的驱动等等。简单说,android体系庞大,BSP部分涉及3种编程语言,多个子系统,全部精通对个人而言不太现实,所以总会感觉自己什么都不会,但什么又都知道一点。
想要破除这个魔咒,“普遍撒网,重点捉鱼”的战术会凑效。譬如我做过一年硬件,做了三年的kernel driver porting,做了一年android kernel/HAL/Framework开发维护,体系跨度不算大,但东西都比较繁杂,技术含量并不高。所以我得规划是重点学习 audio/video部分,以后做多媒体部分的工作。
以上说的可能会比较乱,想到哪写到哪,希望对你有所帮助。其实我也比较迷茫,人生不就是这样么,迷茫着,然后一辈子就过去了^v^
⑻ android的底层是基于什么系统
安卓系统底层是基于Linux的,是基于C和C++的, 上层应用大部分是基于“JAVA"的。
也就是说系统是C/C++编写的,系统外部应用是Java的。
你是指的是android平台代码开发还是希望对android的脚本,版本控制方面的开发,如果是android平台代码的开发。
到google网站下载source code,一点点开始研究底层的代码 Java基础就可以如果想脚本,版本控制或者android底层的C代码的开发:那就需要你对C很精通对android的源码结构非常了解,而且JNI等等技术你都要明白。
⑼ 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底层开发Or Ios开发
Android和iOS还是有很大差别。
的iOS苹果的OSX,UNIX系统,OSX已有近10年的历史,从内核底层软件架构逐步发展。 iOS的ObjectivC这种古老的语言做开发。 Android是基于Linux操作系统,谷歌参与在严格的意义上说,Android是一个Linux系统,它不会有Linux XWIN,glibc中,缺乏一套完整的标准的Linux程序。大部分Android应用程序是用Java开发,运行在Dalvik虚拟机(一小部分的NDK)。谷歌在底层了很多东西。的Andr??oid视为一个新的操作系统。
? Android的Java,容易上手了很多良好的JAVA开发效率会更高
Lib的祝福吗? IOS虚拟机,性能当然更好,与谷歌的改善越来越小
的区别吗? iOS开发框架基本上和MAC上GM,相同的知识,手机的发展,可以同时开发Mac应用程序,Android有没有这样的优势
iOS设备紧密地集成在一起。的硬件和软件公司所有。但是Android不这样做,通常情况下:谷歌发布的源代码。芯片制造商需要1-3个月的时间做自己的芯片解决方案,手机制造商购买的芯片制造商进行自己的集成,定制工作,有时还需要为运营商定制的程序和代码。