android底层
1. Android底层是java,我可不可以理解为精通了java就精通了Android
android 底层是运行时动态库,再往上是c/c++ 的framework,再往上是java,会java只是可以做应用层的开发了,但是实际项目中有可能用到js(和h5的交互),用到c(自己编写native代码),用到linux命令(搭建一些编译环境),会了java只是基础中的基础。
另外:不要用精通这个词,可以改为熟悉了解。
2. android 底层是用c还是c++
Linux系统是作为Android的底层操作系统
3. 如果非要较真,Android的“底层”到底在哪
如果非要较真,Android的“底层”到底在哪?
“底层”其实是个很模糊的概念,所以即使知道Android采用了分层架构,我们也很难判断手机厂商所谓的“底层优化”具体所指。因为仅从字面理解,它可以是绝对的底层——Linux核心层,也可以是相对的底层——应用程序框架层、系统运行库层和Linux核心层。
如果对“底层优化”这四个字刨根问底,那会是个很有技术难度的问题。这不禁让人思考为何手机厂商会如此频繁地提及这个概念,身为技术小白的同事对此表示:“也许是因为‘底层优化’听上去真的很像从根本上解决问题吧。”
Android到底有什么问题?
如果从产品的维度来考量,到目前为止iPhone依然是综合表现最好的智能手机。但值得一提的是,在强大的Android阵营中,即使众厂商都曾站在同一条起跑线上(原生Android),现如今也有人已经走得很远。
当记者试图追溯当初第三方OS在中国爆发的契机时,原点心OS的产品运营总监李俊表示:“Android最开始的版本太差了。”造成这种局面的原因有很多,最重要的两点莫过于Google退出中国市场,以及Android的设计初衷。
一方面,Android与iOS很大的一个区别是:在Android的生态中,手机厂商基本上都是“第三方”。所以在适配硬件的过程中,不同厂商之间的表现也千差万别,相机就是其中的典型。同一颗摄像头,同一个解决方案,不同成像质量的例子不胜枚举。
另一方面,Android诞生时并不是软硬件结合的产物,所以相比苹果对iOS的控制力,Google对Android的开发者基本上采取了“放任自流”的态度。自动运行、自动联网、常驻后台、广告推送、通知栏推送、弹窗推送等非常敏感的权限,Android几乎全都提供给了开发者。
而开发者无论是公司还是个人,他们基本上都是靠利益驱动的。所以当他们发现在举手投足之间,就能为自己带来巨大的商业回报时,权限滥用就成为了一种常态。基于以上两点,作为一个对用户体验还有追求的Android手机厂商,“底层优化”就变得必不可少。
底层是哪一层?
Android的基本架构就是四层——应用程序层、应用程序框架层、系统运行库层和Linux核心层。当记者采访不同的业内人士,询问“底层优化”的范围时,他们几乎给出了完全不同的答案。
FView CEO彭林:“应用程序层和应用程序框架层。系统运行库层(手机厂商)动不了,Linux核心层更动不了。”
乐蛙CEO 赵力:“应该是指应用程序框架层,有能力动下面两层的厂商不多。”
锤子软件开发工程师:“中间两层都有(应用程序框架层、系统运行层)。”
LBE CEO 张勇:“下面三层对手机厂商而言都算是底层,主要优化在最下面两层。”
魅族软件工程师吴章金:“APP(应用程序层)之下,用户看不到的摸不着的都可以叫底层,更底层的则为 系统运行层以及之下。”
小米安全总监马骥:“优化是贯穿整体的,每一层都需要。”
答案的多样性让问题本身失去了意义,不过在追问的过程中可以洞见,Android手机很多被诟病的问题都是可以通过技术手段来解决的,而Android话语权的分散只是为这一过程平添了难度。
4. android底层库包含哪些
Android的本地实现层次具有基本的库和程序,这些库和程序是Android基本系统运行的基础,主要包含以下内容:
l 标准C/C++库Bionic;
l C语言工具库libcutils;
l init进程;
l shell工具;
l C++工具库libutils。
5. 安卓底层指的是Linux Kernel吗
Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application
framework,所有的应用程序都是基于JAVA的application
framework之上。
6. android的底层是基于什么系统
安卓系统底层是基于Linux的,是基于C和C++的, 上层应用大部分是基于“JAVA"的。
也就是说系统是C/C++编写的,系统外部应用是Java的。
你是指的是android平台代码开发还是希望对android的脚本,版本控制方面的开发,如果是android平台代码的开发。
到google网站下载source code,一点点开始研究底层的代码 Java基础就可以如果想脚本,版本控制或者android底层的C代码的开发:那就需要你对C很精通对android的源码结构非常了解,而且JNI等等技术你都要明白。
7. 安卓底层开发能做什么
android底层?
你是指的是android平台代码开发还是希望对android的脚本,版本控制方面的开发?
如果是android平台代码的开发:
到google网站下载source code,一点点开始研究底层的代码 Java基础就可以
如果想脚本,版本控制或者android底层的C代码的开发:
那就需要你对C很精通对android的源码结构非常了解,而且JNI等等技术你都要明白
8. 关于学习安卓底层,懂得进
我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径。根据前辈的经验,Android底层完全入门需要两年。
先说下我的入门过程:
第零步,下载源码,我下的4.2的,框架层源码10G,内核2G多,ctags给框架层建的标签文件都有600M,当时让我有点震撼,用的vim+ctags+cscope来阅读,还算不错,架构挺清晰的。
第一步,我找到了一本好书《Android的设计与实现 第一卷》它讲了Android框架层的启动,初始化,服务框架初始化,Binder,消息循环,PackageManagerService,ActivityManagerService。据作者说后面会出讲UI子系统的第二卷,拭目以待。其实这本书看了几十页我就发现需要第二步的知识,否则看不下去,于是跳去第二步。
第二步,学习Linux系统编程,在看《Android的设计与实现》的时候我发现,框架层的Native部分,全是Linux编程。为了掌握这部分知识,我花了4个月学习了《Linux系统编程手册》(TLPI)这本1000多页的书,我以前是搞WIndows文件系统这块的,所以C语言还比较熟,TLPI的习题很有意思,量也比较大,坚持下来还是收获很多。
第三步,花了4个月学习了一些Linux内核的知识,看了LKD,PLKA看了一半多。越学越没底,觉得不懂得越来越多,不过这个也正常,只有靠慢慢磨,估计以后要不断的磨这块。
第四步,回头看Android源码,这次一口气看完了《Android的设计与实现 第一卷》,终于对框架层有了谱。同时真的数次把我看晕,前面看Linux内核源码都没这么晕,不断在Java层和Native层之间跳有点磨脑浆。其中我又觉得Java的基础没有打太牢,回去补了一个月的《Core Java》第八版。但是这书没有涉及UI子系统,于是又看了《Android内核剖析》
第五步,《Android内核剖析》(这本书实际上是讲框架层的,作者也是个搞嵌入式的,所以他在写框架层的时候文笔不太好,很罗嗦,不过还是有很多看点,到他后来写做ROM,玩开发板时估计是说到了他的本行,一下子遛起来了看得出还是挺有水平的,这本书知识有点旧毕竟讲的是2.3很多代码已经过时,但是作者很多点子很有参考价值)这本书讲UI子系统和按键/触摸消息处理系统还是很有分量的,尤其13章View绘制那里,结合源码研究很有收获。而后面他讲编译框架和ROM相关的东西都是挺宝贵的资料。
第六步,为了再补一下其他诸如电源管理模块等子系统的知识看了,《深入理解android》系列,个人认为这个系列看起来有点不太舒服,不过作为补充印证还是比较有价值。
第七步,《Android系统源代码情景分析》,罗升阳的源码分析大作,比《Android的设计与实现》分析得更细致,但缺点是涉及到模块比较少,选用的源码也比《Android的设计与实现》更旧一点。看完书后需要去研究作者的博客,东西挺多的,一定让你满意。
第八步,买块开发板自己玩。这步我还没走到,原因是我觉得我还差点准备知识。可能要再几个月,到时准备入块6410或者树莓派。
最后,由于我11年以前都是搞Windows这块的,所以对Linux知识不是很了解,不得已看了这么些书,如果是一直做Linux的人,很多步骤估计可以省掉了。直接上源码才是正道。
我本身做着移动GIS开发的工作,学框架层全是因为兴趣,但招聘平台Android框架层开发人员还是蛮有竞争力的有不少定制ROM,智能电视的工作都处于人才难求状态,毕竟有一定的门槛,现在各种ios培训,让奔着钱干开发的人纷纷涌入,而ios只能干sdk开发的缺点就暴露出来了,一堆新手老手,菜鸟大牛全挤在SDK开发这块,我觉得不太妙。 反观Android这边,虽然入门菜鸟没有搞ios来钱,但是可持续性很好,从sdk-》框架》驱动》内核这样干下去。干着干着发现自己渐渐变成了Linux开发者/嵌入式开发者的人也不少,新人,老手,菜鸟大牛各居其位,层次性很好。
9. 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的软件也就更赚钱了。