android知识体系
1. 安卓系统知识普及,ROM和RAM是什么意思
最重要的是说明手机存储空间的种类和各自的功能,是属于内存还是外存(从纯理论上来说,能被CPU直接访问的是内存,不能被CPU直接访问,需要内存过度的是外存):
RAM中存放什么?手机中的RAM就一定是内存么?
ROM中存放什么?同上。
SIM卡中的空间是算外存还是算内存,SIM卡可以理解为类似电脑上的网卡,己前的汉卡,或显卡之类的外部接口卡吗?就是说它可以理解为计算机的外部设备吗?
SD卡是不是确定算外存?
一些智能手机内部是不是也有与SD卡地位相当的内部存储卡,是不是算外存?
安装软件时即使选择安装在SD卡上,也会存在存储空间不足的问题,是不是安装安卓系统的软件必然会占用手机内部的存储空间,这个空间是属于内存还是外存。
最后,或者——智能手机的硬件体系并象计算机那样有清晰的内外主从之别,那就请给一个较清楚完整的说明。
2. Android开发和iOS开发那个更有前景如何选择
Android开发和iOS开发那个更有前景?如何选择?
个人觉得ios开发更有难度,薪资更高,我们公司的安卓程序猿轻松完成开发,ios就是老出问题,不是技术不过关,是确实有难度。
在这两者之间选择没有好或者更好只能看自己喜欢或者不喜欢
3. 怎样解决ios与android的大小差异
就索性进行了一番调研,于是有了本文(本次不讨论越狱的iOS)
首先从情感上,你喜欢哪个就好,就像百事可乐和可口可乐,当然这个比喻不是很恰当,因为可乐喝起来几乎一样,但是Android和iOS还是有很大差别的。
iOS来源于Apple的OSX,是UNIX系统,OSX已经有差不多10年的历史,从内核底层到软件架构都是逐步发展过来的。iOS使用ObjectivC这个古老的语言来做开发。而Android是Google基于linux搞来的,严格意义上讲Android并不是一个Linux系统,它没有Linux的xwin,没有glibc,缺乏一整套标准的Linux程序。Android应用绝大部分都是使用java开发,跑在Dalvik虚拟机上(一小部分使用NDK)。 Google在底层也修改了很多东西。Android算是一个全新的操作系统。 所以:
Android使用JAVA,上手容易很多,如果有很好的JAVA Lib加持,开发效率会高些
iOS没有虚拟机, 也没有GC,性能要好一些,当然这个差别会随着Google的改进越来越小
iOS的开发框架很成熟,而且和MAC上通用,同样的知识体系,也可以开发MAC应用,Android相比是全新的框架, 还会继续进化。
iOS和设备紧密集成。软硬件一家公司通吃。但是Android无法做到, 通常的情况是:Google放出源代码。 芯片厂商需要1-3个月来做自己的芯片方案, 手机厂商从芯片厂商处买到方案和代码, 进行自己的集成,定制工作,有时候还需要针对运营商进行定制。 所以:
iOS的设备集成度和驱动优化都是最好的。电源管理一块就可见一斑,而Android厂商就鱼龙混杂。可能排头的厂商的旗舰机器会好些,但是由于Android工期一般都比iOS设备短(请看HTC和三星出机器的速度),所以整体上和iOS比是有差距的。
由于有多家厂商自己做定制,Android还存在设备的分裂问题(fragmentation), 作为过来人,我告诉你这个是很头痛的事情, 且不论调试时间和人力, 光买一大堆设备的成本就不小。最关键的是它会伤美工/UE的心。
iOS是被Apple严格控制的系统。 在大部分情况下, 第三方应用是无法拿到所有API的。 这意味系统级别的很多功能只有Apple能做(比如打电话,拦截短信)。此外一些涉及用户隐私的API还会导致系统弹出对话框询问用户。 同样第三方runtime做应用开发也是基本不可行的(Flash当初也是被这个条款拒过)。 反过来Android完全不一样,首先Android是开源的,在设计上Android就允许自由替换系统组件, Android也没有强制限制API的情况,(hidden API也可以call,没有人会找你麻烦)。 系统级别的权限是下放到厂商手中,如果厂商愿意给,那第三方开发者就可以做任何事情。 普通应用的权限认证也是在安装的时候就一次性授权完成。 之后不会骚扰用户。所以:
Android平台可以做的事情远远比iOS多, 你可以做电话管理,地址簿,短信管理,可以自己跑后台service。 替换掉系统的组件非常容易
Android平台也可以跑其他系统的Runtime, 比如Flash, 有了NDK, 你要自己接入一个虚拟机也是可能的。Google不会管你
任何人可以拿Android自己改个独立的系统出来,也许这样做的意义和前景有问题,但是同样,没有人限制你
iOS上唯一的下载应用途径就是Appstore,开发者做应用上线还要通过Apple审核,就算通过了,如果挂羊头卖狗肉乱来或者调用了不该用的API, Apple一样随时可以下架。管理非常严格。反过来Android上非常松懈:
厂商可以内置应用。经常会扔一些莫名其妙的软件预装在手机上, 笔者在厂商的时候深刻体会到乱选软件是很好玩的事情。而且我们不会让你删除掉的。
Google的官方菜市场不做应用审核,开发者上传软件很随意,这是个自由市场。
国内还存在大量第三方软件菜市场。以及豌豆夹类似的PC端管理软件。
如果用户选择允许未知来源,那么通过web下载或者安装卡上的软件也是可以的。似乎国内用户都是允许的。所以:
iOS上的精品软件多,竞争激烈但管理有序,开发者也容易挣钱。
Android上虽然也有精品软件,但是垃圾软件更多, 甚至有恶意软件。 因为无门槛,基本上软件都是免费,卖不起钱, 大部分都靠广告。
Android还有一堆杀毒软件,这是典型的没有困难,制造困难也要上的精神。
Android上还有一堆安慰剂软件,比如能帮你省电的或者是帮你杀后台进程的来提升性能的, 笔者作为做过底层开发的人,笑而不语。
如果你是普通用户,请关贴, 本文不是用来给普通用户选机的。
如果你是一个个人软件开发者, iOS适合你, 市场规范, 做应用省心。
如果你是一个软件和服务的创业公司, iOS也是适合你做demo的和第一个产品的, 产品靠谱了,用户在用了,有人给钱了,再往Android走也是可行的。 除非你做的应用要涉及硬件或者需要非常高的系统权限, 如果是那样你也只有选择Android。因为国内的厂商肯定要比苹果要容易谈下来。
如果你是一个要做硬件和系统定制的公司, 那么基本上你只有Android可以选。Android的解决方案的成本也在不断下降。
如果你是一个有中国特色的公司,想搞点移动业务玩玩, 还要瞒着用户做很多事情。 那么Android也是更好的, 就算你不作恶, 控制权在自己手中也会方便运作一点。所经如何选择,不用我多讲,这两个都是当今移动互联网开发的方向,但是一个开源学习起来更容易,做东西更快,有绝对的控制权。一个不开源,只能做上层应用,但也可活的很好,就是这样。
请采纳答案,支持我一下。
4. android开发的知识体系
1、Unix/Linux平台技术:基本命令,Linux下的开发环境
2、企业级数据库技术:SQL语言、SQL语句调优、Oracle数据库技术
3、Java 语言核心技术:Java语言基础、Java面向对象编程、JDK核心API、Java集合框架、Java网络编 程、JavaI/O编程、Java多线程编程、Java异常机制、Java安全、JDBC、XML
4、软件工程和设计模式:软件工程概述、配置管理及SVN、UML、基本设计模式
5、Android应用开发基础:Android开发平台、Eclipse+ADT开发环境、AVD及传感模拟器调试、Android核心组件、Android常用组件、Android高级组件、文件及网络访问、SQLite数据库编程、后台服务编程
6、互联网核心技术: HTML、CSS、JavaScript、JQuery、Ajax应用
7、Android高级应用开发:音频视频摄像头、互联网应用、GPS和位置服务、Google Map、2D3D绘制、传感器开发、游戏开发、电话及SMS服务、网络BluetoothWi-Fi等。
8、Android系统级开发:移植、驱动、NDK(C方向)。
9、JavaEE核心技术:Servlet核心技术、JSP核心技术、Struts、Spring、Hibernate框架。
5. 如何构建android知识体系
通过大量阅读,特别主题阅读来建立自己的知识体系,主题阅读具体体现在读书笔记和思维导图。
一、我对笔记的要求:
能把书中的框架和重点都展现出来或者你用一页纸能把重点说清楚,就算合格。 第一步来说理清结构,归纳重点。 第二步是舍弃对自己无用的部分,
第三部分按自己的理解进行整理,有时会把导图按照7W3H的方式从新做一个思维导图 第四步用自己的话从新表达出来,
第五步是实践,然后根据结果进行调整和改进。不断重复这几步 二、建立初步框架
1、读过的书,尽可能做成笔记或导图,笔记放在OneNote里。导图放在MindManage里 2、针对不同的主题,建立思维导图,尽量提练重点,然后在Note或分支中加下注释或出处。 3、定期整理和汇总,不段调整分支和整体结构。
4、如果有时间的话,最好做成PPT或写文章,能把所关注的问题,用自己的话给清楚表达出来 5、不断重复这个过程。 三、资料补充
如果学习的东西是一个专业性比较强的行业 1、还需要建立自己的专业名词字典 2、做资料收集工作,定期整理
6. 如何学习安卓开发
目前国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用(放到Android Market或者其他App Market销售)以及游戏开发(放到Android Market或者其他App Market销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者,目前和第二类开发者类似。下图是开发者提交的应用和游戏的数目所占的比例图,从中也可以看出应用开发数目远超游戏开发。
上面是Android的体系架构图,自上而下分别为应用层、应用框架、类库和Alvik运行时环境以及Linux内核。一般来说,我们想从事Android开发,可以从应用开发作为切入点,逐渐熟悉其整个体系,并慢慢往其底层渗透,从而能做到软硬兼备,既涉及到应用开发的透彻掌握,又帮助大家在系统开发层面上做好充分的准备。而从学习的路线图上来说,先熟悉Java SE编程,能比较熟练的使用Java语言进行编程,熟悉Java语言语法特点,熟悉Java IO、Java线程、网络编程、XML处理等。另外,因为很多的Android应用在运行时都需要去访问网站服务器,因此,熟悉一种网络编程语言也是必要的。无论是从学习的方便性还是市场占有情况来说,使用JSP/Servlet都是不二的选择,另外,在这个阶段也顺便学习一下SQL语法和熟悉一种SQL数据库,以方便后续Android开发中进行SQLite数据库开发。学习完这些课程后,就可以开始进行Android的应用开发的学习,例如Android中的UI组件、基本组件、数据存储、传感器、图形图像处理、多媒体处理、游戏开发等。为了更好地进行应用编程,可以有选择的对其Lib类库进行分析,以加深对其工作机制的理解。再往下,就是操作系统层级了,这里应该要对Linux操作系统进行学习,熟悉其内核和运行原理,熟悉ARM体系架构以及常用指令,并熟悉驱动的编写方式,掌握其移植方法等。
7. 一名合格的Android工程师的知识结构是怎样的
先不说开发代码写的怎么怎么样,首先我觉得你需要了解ui,ue等前提,能自己设计界面,画图,美工,然后敲代码速度快,质量高,技术过硬,这就是我认为合格的android工程师应掌握的知识结构
8. Android开发工作当中,最常用到的是哪些知识
理解与掌握Android系统体系结构;搭 建Android企业级项目开发环境。
能够 用模拟器与真机调试Android项目。
能够用JAVA开发基于Android系统的嵌入 式软件、熟练掌握IDE各界面及调试功能,掌握控件的属性设置及应用,掌握 随机数的使用,理解游戏基本征 Java简介和编程环境。 了解Android平台介绍;Android开发环境搭建与配置;Android应用程序开发框架、项目组成;Android程序调试与测试;Android的xml解析。
熟悉Button, ImageButton,TextView,EditText使用;Android内存管理系统接口、文件、日志系统;Android系统的图形图像、多媒体; Android中的网络操作;Android中的硬件访问传感器,通信权限管理。
9. 关于Android 平台开发相关的有哪些推荐书籍
推荐十本Android开发畅销书籍:
1. 《Android基础教程》本书是一部关于 android开发的基础教程,采用由浅入深、循序渐进的方式讨论android。书中还结合数独游戏等实例更加形象生动地讲解了 android开发的基本流程,且每章最后都有一个 “快速阅读指南 ”,更加方便了读者的阅读。. 本书内容完整丰富,具有较强的通用性,读者都能通过本书快速学习 android开发,提高相关技能。
2. 《Android应用开发揭秘》(累计印刷6次,内容已更新至Android 2.2,版权输出至台湾)这是一本参考手册,内容的完整性和系统性几乎无可挑剔,可作为广大Android开发者的案头必备书;这是一部权威指南,基础知识部分翔实而丰富,高级知识部分深入且饱含最佳实践,能从本质上提升开发者对Android的理解和开发水平。尤为值得一提的是,Android 2.0中新增了大量激动人心的新特性,不仅支持多点触摸设备、软键盘,而且还支持多账户在线管理、蓝牙……作为国内第一本基于Android 2.0的着作,本书可谓极具前瞻性,第一时间将这些新特性完美地呈现给了广大读者。
3. 《Google Android SDK开发范例大全》(09年度畅销榜NO.10)(台湾天珑书局09年超级畅销书)本书以android手机应用程序开发为主题,通过130多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力提供了很大的帮助。. 全书共分10章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、使用android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及整合android与aoogle强大的网络服务等内容,随书光盘中包括了所有范例的程序代码。
4. 《Google Android SDK开发范例大全(第2版)》 本书在上一版的基础上,以android手机应用程序开发(采用android sdk 2.1)为主题,通过160多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力提供了很大的帮助。全书共分10章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、使用android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及整合android与aoogle强大的网络服务等内容。随书光盘中包括了所有范例的程序代码。本书讲述由浅入深,由android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合android的初学者和android的进阶程序开发者阅读参考。
5. 《Android/OPhone开发完全讲义》(此书版权已经输出到台湾)推荐这本书有两个原因:一是移动开发的广阔前景,使得越来越多的企业、开发者投入其中。相比iPhone而言,Android平台的开放性以及国内市场的广阔性,使得它更有代表性;二是作者李宁,他写作的理论性和实践性兼备,以及对技术的孜孜追求,使得这本书在Android开发的实战方面很具代表性。也希望读者朋友和我一样能从这本书中获益。
6. 《Android系统原理及开发要点详解》 本书全面介绍开放的移动电话平台android系统,包括android系统中的linux驱动、本地框架、java框架和java应用4个层次。本书内容以知识性内容为纲,重点关注开发要点,各个部分内容注重相互照应,按照清晰的思路向读者介绍整个android系统的原理和开发方法。本书按照android系统的框架和各个子系统的主线,重点介绍开发android应用程序和构建硬件抽象层。其内容涵盖了android应用程序开发和android系统移植构建手机系统两大方面。本书既适合从事android各个层次开发的工程师阅读,也适合通用嵌入式linux系统的学习者使用。
7. 《深入浅出Google Android》(示例生动丰富,理论和实践完美结合)本书是国内最早的android开发团队的集体智慧结晶,真正完全基于android最新的sdk 1.5,内容详实,示例生动丰富,包含大量示例代码,可操作性强。它不仅涵盖了android平台从基础概念到高级应用的所有主题,而且深入浅出地介绍了几种常见的android项目,具有很强的参考价值。特别是在本书的第10、11章重点介绍了android sdk 1.5引入的最为重要的三个特性,即桌面部件、实时文件夹、虚拟键盘与输入法应用的开发方法。.. 通过本书,读者可以迅速掌握android平台来构建应用程序,成为android开发高手,跻身新技术的弄潮儿。
8. 《Google Android开发入门与实战》(09年度畅销榜TOP50)(附赠400分钟高清教学视频,涵盖5大商业案例完整源代码)本书内容上涵盖了用android开发的大部分场景,从android基础介绍、环境搭建、sdk介绍、market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别是rss阅读器、基于google map的个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力的指导,在遵循技术研发知识体系的严密性同时,在容易产生错误、不易理解的环节配以了翔实的开发情景截图,并将重要的知识点和开发技巧以“小实验”、“小提醒”、“小知识”、“注意”等的活泼形式呈现给读者。在程序实例的讲解方面,主要将实例安插在android开发的精髓知识章节,这为初学者学习与实践结合提供了很好的指导。. 本书配套有400多分钟的全程开发视频光盘,指导读者快速、无障碍地学通android实战开发技术。
9. 《精通Android游戏开发》(将本地PC游戏轻松移植到Android的秘技) 本书讨论如何将pc 上的3d 游戏移植到android 平台。作者从必备的技能和软件工具入手,逐步介绍如何从头构建纯java 游戏,如何混合使用opengl 3d 图形和jni,并以真实的pc游戏wolfenstein 3d和doom为例,介绍如何融合java 的优雅设计和c 的强大功能,使混合游戏达到最佳性能。本书适合熟悉android 平台的开发人员阅读。
10. 《人人都玩开心网:Ext JS+Android+SSH整合开发Web与移动SNS》 本书的主旨为,以开心网为例实现web版和android版的sns应用。本书分为四篇,前三篇主要实现了web版的开心网系统。其中重点介绍了ext js技术,包括ext js的核心组件、对话框、表单组件、布局、数据校验、表格、菜单、树组件等技术。本书的最后一篇实现了android版的开心网,并介绍了与android版开心网相关的技术,包括button、textview、edittext、imageview、gridview等android组件。本书适于以下几类人群:了解传统的web应用程序的开发,希望使用ext js开发web程序的开发人员;了解基本的ext js程序的开发方法,想增加实践经验的开发人员;对ext js感兴趣,想进一步提高ext js开发技能的读者;对android感兴趣,想从事android开发的读者;想开发基于android客户端的c/s程序,但对开发流程不了解的读者。