android22源码
⑴ 怎么在windows下查看android源码
先下载源码,最新为2.2
2.找SDK目录
安装的SDK到我的目录E:\
E:\android-sdk-windows\
找到目录 结构如下:
E:\android-sdk-windows\
-platforms
+android-3(android-1.5)
+android-4(android-1.6)
………..
+android-6(android-2.0)
+android-7(android-2.1)
+android-8(android-2.2)
最高的android-8对应的是SDK2.2。
在android-8文件中新建sources然后把下载好的源码(android-2.2-froyo-src.zip)解压到这个文件下。
3.改配置文件(修改红色部分)
找到android-8目录下的文件source.properties并将其修改如下:
### Android Tool: Source of this archive.
#Wed Oct 13 14:00:16 CST 2010
Pkg.Desc=Android SDK Platform. 2.2_r1
Pkg.UserSrc=true
Archive.Arch=ANY
Platform.Version=2.2
Pkg.DescUrl=sources
Archive.Os=WINDOWS
Pkg.SourceUrl=sources
Pkg.Revision=2
AndroidVersion.ApiLevel=8
大公告成,重启Eclipse,按ctril+关键字、类名 或者按F3就可以点进去了,可以看到源码了吧!
PS:已经下载好的源码,可以把core目录放入到sources中即可。。。
⑵ 安卓系统是开源的,开源是啥意思
简单的来说 ,比如谷歌开发了安卓系统最基础的框架了,华为等手机厂家可以利用其源代码开发修改升级匹配自身的系统,但是因为基础源代码来自于安卓(所以我们的手机开机时一般都会体现 POWERED BY Android )。而且开发者对于源代码的任何改进都必须要告知开源软件的公司,这样也有利于开源的公司进一步提高源代码。在这方面华为为安卓的发展壮大做出了巨大的贡献。
早期的时候可能困难,但是以现在华为的技术水平来说,开发一个手机操作系统根本不难,但是为什么一直不推出自己的系统呢?这是因为系统容易,生态难。
每一种操作系统都有它的运行环境,所有你在下载APP的时候,不同的操作系统是要下载不同的APP的。一个新的操作系统进来,没有你那个系统的APP,那么根本没人会使用你的手机,因为它等于以前的老人机。
举个例子 :比如华为开发了一个系统(据传是鸿蒙),但是微信、支付宝、网络等等这些企业都不开发适用于鸿蒙系统的APP软件,那么鸿蒙系统将会面临的无软件可下载的情况,这时候,这个系统等于废弃的一个系统。之前微软在意识到的手机操作系统的重要性之后,也推出了Windows Phone,不过最终也败下阵来了,因为没有匹配的app可以下载,所以安卓并不是强大,只是它抢占了先机而已。
PS: 很多人会说那苹果属于闭源系统,这些软件开发公司是怎么开发APP的。简单的来说app应用是需要调取系统的权限完成一些特定的工作,系统闭源可以简单理解成禁止其他开发者获取系统的代码,但是应用需要获取的权限是可以赋予的,还有编写应用的代码也是开放的,ios虽然不让你看源码,但它也提供了sdk用来调用系统资源,也提供了api接口来和系统通信调度,所以微信支付宝这些公司可以开发适用于ios的app。
华为最好的解决办法是直接开发出可以兼容安卓APP的系统,那么关于系统的问题就全部迎然而解了,华为的回应中也说明有能力继续发展和使用安卓生态,所以大概率预计新系统是可以兼容的。
假设华为的系统无法兼容安卓的app,那么需要目前所有开发APP的各家企业支持,重新开发适用于华为系统的app应用,这个难度就有点大了,国内或许还好,国际就比较困难了,毕竟别人没有义务做这件事。
一个操作系统就像一个生态圈,一旦这个生态圈稳定,其它的系统就很难进得来,电脑等其它操作系统也是如此,所以华为的困难不在与开发操作系统,而在于其生态圈的架构,最简单的方式就是直接兼容安卓app。
开源从字面上的理解就是开放源头,使用者可以在源代码的基础上进行修改和补充,形成具有特点的定制功能,很多人认为开源就是免费的,它只是对外界开放,但必须要符合原始开发公司的要求。
其中最具代表性的开源系统就是Linux,各种应用不断完善更新都离不开它。最大的特点是开放源代码可以自由定制,由于用户的技术水平有限,很多的硬件和软件厂商并没有提供开源的功能,这就要靠使用者在选择操作系统时根据自己的技术水平来选择,这也说明了很少人用开源操作系统的原因。而对于专业的开发人员来说,开源系统有很大的优势,开发应用可以随心所欲也没那么复杂,因为是开放的源代码,可以根据自己特定的需求进行修改,这对于互联网开发人员来说,是非常重要的帮助。
像Android的系统就是开源的,基于Linux程序开发的一个java虚拟器,然后在这个设备里运行Java。很多手机厂商在原生Android系统里添加一些定制的功能,形成独有的系统特色,这些操作也不用谷歌授权。但有个前提,只能修改一些普通的代码,重要的核心部分不能修改。
系统开源给了大家很多的便利,用户也在不断增长,对于开源的部分也是会受到一定的限制,谷歌公司可以给你空间去创新,但核心技术还是在别人手里,只有开拓局面,掌握核心技术开发自己的操作系统才是王道。
开源,顾名思义,就是开源源代码,但是使用者需要遵守开源规则。
安卓开源,就是说所有的厂商或者开发者都可以直接使用安卓的源代码去开发,但是需要遵守谷歌的使用条件。
比如说,
全球所有厂商必须预装Google全家桶(中国内地,朝鲜除外,因为谷歌已经退出该市场,服务不可用)。
而对于国内的安卓在开机时都会有一个Android的标签,这个是在Android 4.4开始强制要求的,不然以前很多厂商改成跟自己家的系统一样,完全不把谷歌放在眼里。
其次是核心代码功能不能随意更改,必须遵守API的协议,某些厂商乱改底层导致一堆兼容性变差,谷歌被黑锅(说得就是中国定制的Android)。
还有很多条例就不一一列举。
但是开源必须遵守开源精神,这对作者也是一个尊重。
作为个人开发者的我,使用他人代码依然会注明原作者信息。
欢迎在点击右上角关注:“太平洋电脑网”,不定时放送福利哦!
开源,全称为开放源代码,是每个人都能看到,每个人都可以在规则之内使用,使用和开发之后需要把你的产品返回到代码之中。
主要是为了人人为我,我为人人的精神,共同推动这个社区或者是这个系统进步。
安卓开源,那就是谷歌需要会把安卓的代码公布公开出来,方便用户在这个代码的基础上进行学习,同时也能修改,甚至可以进行商业化。
但是,你在这个基础上开发和修改的代码也需要公布出来,不能只索取不付出的,需要求同存异,互利共赢。
当然,这样做的方式,是想要通过全世界的程序员的力量,把开发的工作的难度降低了,提高了程序员的工作效率,避免重复造轮子。
同时,如果你用到了别人的代码,你需要备注代码的作者,表示对于作者的尊重。
所以说,安卓系统是全世界的程序员的成果,因为大家在这个基础上开发了是需要把代码公开的,供大家使用和学习的。这也是安卓能这么快发展和进步的原因,因为这汇聚了全世界程序员的智慧。
所以,世界上没有任何一个人能够阻止其他人去使用安卓系统的代码。谷歌不授权,也只不过是不能使用Google的APP,也不能使用GSM服务协议而已。当然,这个在国外影响挺大的,但是依然可以使用安卓系统的。
安卓系统开源,就是安卓系统源代码对外开放,给你举个例子,假如你要写小说,小说的内容就像系统里面的代码,然后你发布到网上那么其他网站就会找你合作,希望得到你的授权,那么你同意过后才能发布,你当然希望有更多的人来看你的小说,也希望读者能给你提提建议,那么你肯定也会要求网站备注这个小说的作者是谁,一来防止别人修改你的小说内容,二来你可以收到读者的建议!那么你就会不断的完善其小说的内容!
那么你的小说内容对外发布,就相当于把源代码公开,这就是系统开源,然后就是别人拿你的小说内容拍电影,它也要表明影片内容的作者及作品,这相当于把你的作品作为影片内容的框架,可能在小说的内容上修改一下,然后拍成影片发布,说到这里,是不是明白什么是系统开。
也就是说我可以将我的系统开放给你使用,但是你只能在系统上进行创作和修改,因为这系统里面有我的版权技术在里面!我只是给你免费使用而已,当我不想给你使用,你必修删除我在系统里面的版权技术。
android (安卓)是完全开源的。
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
(2)android22源码扩展阅读:
一、发展历程
2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。
2005年8月17日,Google低调收购了成立仅22个月的高 科技 企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。
并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。
2008年,在GoogleI/O大会上,谷歌提出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
二、系统内核
Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。
Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。
直白点就是可以改,你可以利用他转变为自己的需要,在系统中添加自己的功能,就说一个茄子吧,你可以拿来炒拿来煮,这个茄子就是开源的,某个人把茄子炒好给你端在面前,你只能拿来吃,这盘炒好的茄子就是闭源的,像win系统所有功能都摆在哪里你无法在系统里面去添加功能,
意思就是随便用,谁爱用谁用。
应该是开放源代码!就象设计师公开了自己的工程设计图线一样。那样别人就能够拿着别人公开的这些东西进行各种仿制和在人家的基础上做一些相应改动,从而弄成你想要要的样子。
开源的就是开放的。不开源,就是不提供开发细节。
开源就可以让别人掌握技术细节。不开源就不能掌握技术细节。
⑶ android源代码idreammanager在什么地方定义的
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:
|-- Makefile
|-- bionic (bionic C库)
|-- bootable (启动引导相关代码)
|-- build (存放系统编译规则及generic等基础开发包配置)
|-- cts (Android兼容性测试套件标准)
|-- dalvik (dalvik JAVA虚拟机)
|-- development (应用程序开发相关)
|-- external (android使用的一些开源的模组)
|-- frameworks (核心框架——java及C++语言)
|-- hardware (主要保护硬解适配层HAL代码)
|-- libcore
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源)
|-- sdk (sdk及模拟器)
|-- system (文件系统库、应用及组件——c语言)
`-- vendor (厂商定制代码)
bionic 目录
|-- libc (C库)
| |-- arch-arm (ARM架构,包含系统调用汇编实现)
| |-- arch-x86 (x86架构,包含系统调用汇编实现)
| |-- bionic (由C实现的功能,架构无关)
| |-- docs (文档)
| |-- include (头文件)
| |-- inet
| |-- kernel (Linux内核中的一些头文件)
| |-- netbsd (?netbsd系统相关,具体作用不明)
| |-- private (?一些私有的头文件)
| |-- stdio (stdio实现)
| |-- stdlib (stdlib实现)
| |-- string (string函数实现)
| |-- tools (几个工具)
| |-- tzcode (时区相关代码)
| |-- unistd (unistd实现)
| `-- zoneinfo (时区信息)
|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
|-- libm (libm数学库的实现,)
| |-- alpha (apaha架构)
| |-- amd64 (amd64架构)
| |-- arm (arm架构)
| |-- bsdsrc (?bsd的源码)
| |-- i386 (i386架构)
| |-- i387 (i387架构?)
| |-- ia64 (ia64架构)
| |-- include (头文件)
| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)
| |-- powerpc (powerpc架构)
| |-- sparc64 (sparc64架构)
| `-- src (源代码)
|-- libstdc++ (libstdc++ C++实现库)
| |-- include (头文件)
| `-- src (源码)
|-- libthread_db (多线程程序的调试器库)
| `-- include (头文件)
`-- linker (动态链接器)
`-- arch (支持arm和x86两种架构)
bootable 目录
|-- bootloader (适合各种bootloader的通用代码)
| `-- legacy (估计不能直接使用,可以参考)
| |-- arch_armv6 (V6架构,几个简单的汇编文件)
| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)
| |-- include (通用头文件和高通7k架构头文件)
| |-- libboot (启动库,都写得很简单)
| |-- libc (一些常用的c函数)
| |-- nandwrite (nandwirte函数实现)
| `-- usbloader (usbloader实现)
|-- diskinstaller (android镜像打包器,x86可生产iso)
`-- recovery (系统恢复相关)
|-- edify (升级脚本使用的edify脚本语言)
|-- etc (init.rc恢复脚本)
|-- minui (一个简单的UI)
|-- minzip (一个简单的压缩工具)
|-- mttils (mtd工具)
|-- res (资源)
| `-- images (一些图片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升级工具)
`-- updater (升级器)
build目录
|-- core (核心编译规则)
|-- history (历史记录)
|-- libs
| `-- host (主机端库,有android “cp”功能替换)
|-- target (目标机编译对象)
| |-- board (开发平台)
| | |-- emulator (模拟器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最简单)
| `-- proct (开发平台对应的编译规则)
| `-- security (密钥相关)
`-- tools (编译中主机使用的工具及脚本)
|-- acp (Android "acp" Command)
|-- apicheck (api检查工具)
|-- applypatch (补丁工具)
|-- apriori (预链接工具)
|-- atree (tree工具)
|-- bin2asm (bin转换为asm工具)
|-- check_prereq (检查编译时间戳工具)
|-- dexpreopt (模拟器相关工具,具体功能不明)
|-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (获取文件系统状态)
|-- iself (判断是否ELF格式)
|-- isprelinked (判断是否prelinked)
|-- kcm (按键相关)
|-- lsd (List symbol dependencies)
|-- releasetools (生成镜像的工具及脚本)
|-- rgb2565 (rgb转换为565)
|-- signapk (apk签名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)
dalvik目录 dalvik虚拟机
.
|-- dalvikvm (main.c的目录)
|-- dexmp (dex反汇编)
|-- dexlist (List all methods in all concrete classes in a DEX file.)
|-- dexopt (预验证与优化)
|-- docs (文档)
|-- dvz (和zygote相关的一个命令)
|-- dx (dx工具,将多个java转换为dex)
|-- hit (?java语言写成)
|-- libcore (核心库)
|-- libcore-disabled (?禁用的库)
|-- libdex (dex的库)
|-- libnativehelper (Support functions for Android's class libraries)
|-- tests (测试代码)
|-- tools (工具)
`-- vm (虚拟机实现)
development 目录 (开发者需要的一些例程及工具)
|-- apps (一些核心应用程序)
| |-- BluetoothDebug (蓝牙调试程序)
| |-- CustomLocale (自定义区域设置)
| |-- Development (开发)
| |-- Fallback (和语言相关的一个程序)
| |-- FontLab (字库)
| |-- GestureBuilder (手势动作)
| |-- NinePatchLab (?)
| |-- OBJViewer (OBJ查看器)
| |-- SdkSetup (SDK安装器)
| |-- SpareParts (高级设置)
| |-- Term (远程登录)
| `-- launchperf (?)
|-- build (编译脚本模板)
|-- cmds (有个monkey工具)
|-- data (配置数据)
|-- docs (文档)
|-- host (主机端USB驱动等)
|-- ide (集成开发环境)
|-- ndk (本地开发套件——c语言开发套件)
|-- pdk (Plug Development Kit)
|-- samples (演示程序)
| |-- AliasActivity ()
| |-- ApiDemos (API演示程序)
| |-- BluetoothChat (蓝牙聊天)
| |-- BrowserPlugin (浏览器插件)
| |-- BusinessCard (商业卡)
| |-- Compass (指南针)
| |-- ContactManager (联系人管理器)
| |-- CubeLiveWall** (动态壁纸的一个简单例程)
| |-- FixedGridLayout (像是布局)
| |-- GlobalTime (全球时间)
| |-- HelloActivity (Hello)
| |-- Home (Home)
| |-- JetBoy (jetBoy游戏)
| |-- LunarLander (貌似又是一个游戏)
| |-- MailSync (邮件同步)
| |-- MultiResolution (多分辨率)
| |-- MySampleRss (RSS)
| |-- NotePad (记事本)
| |-- RSSReader (RSS阅读器)
| |-- SearchableDictionary (目录搜索)
| |-- **JNI (JNI例程)
| |-- SkeletonApp (空壳APP)
| |-- Snake (snake程序)
| |-- SoftKeyboard (软键盘)
| |-- Wiktionary (?维基)
| `-- Wiktionary**(?维基例程)
|-- scripts (脚本)
|-- sdk (sdk配置)
|-- simulator (?模拟器)
|-- testrunner (?测试用)
`-- tools (一些工具)
⑷ android (安卓)是完全开源的吗
android (安卓)是完全开源的。
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
(4)android22源码扩展阅读:
一、发展历程
2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。
2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。
并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。
2008年,在GoogleI/O大会上,谷歌提出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
二、系统内核
Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。
Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。