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

android (安卓)是完全开源的吗

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

android (安卓)是完全开源的吗

一、android (安卓)是完全开源的吗

Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。

尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。

2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

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工作的一个工具。

参考资料来源:百度百科-android

二、有哪些 Android 的开源界面库

比较火爆的Android开源库有以下:

(2)网络请求的排序(scheduling)

(6)和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)2、android-async-http

(7)可将Cookies持久化到SharedPreferences 3、Afinal框架

,使用了线程池对sqlite进行操作。

(2)注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。

(3)网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。

(4)图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。4、xUtils框架

,一行代码就可以进行增删改查;

(2)注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;

(3)网络模块:支持同步,异步方式的请求;

(4)图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;5、ThinkAndroid主要有以下模块:(1) MVC模块:实现视图与模型的分离。

(2) ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。

,使用了线程池对sqlite进行操作。

(4) http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。

(5)缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置

(6)图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。

(7)配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。

(8)日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印

、对下载进行控制、如开始、暂停、删除等等。

(10)网络状态检测模块:当网络状态改变时,对其进行检6、LoonAndroid主要有以下模块:

(1)自动注入框架(只需要继承框架内的application既可)

(2)图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)

(3)网络请求模块(继承了基本上现在所有的

(4) eventbus(集成一个开源的框架)

(6) json解析(支持解析成集合或者对象)

(7)数据库(不知道是哪位写的忘记了)

(8)多线程断点下载(自动判断是否支持多线程,判断是否是重定向)

三、用过哪些好用的Android开源项目呢

目前最顺手的是OkHttp,其中的Okio模块现在也抽象成单独的开源库了,对Java io/nio做了很好的封装,性能非常高。

另外我个人不推荐Volley这个网络库,它的请求队列和request/response封装确实还不错,但是NetworkImageView等图片加载部分是有不少bug的,包括最头痛的卡顿(是出在二三级缓存策略或者imageLoader里具体记不得了)。而且Volley的接口设计也让我用得很头痛。

个人推荐Picasso,不太推荐Google官方推荐的Glide。

二者接口非常相似,都用得很舒服,但是Glide对图片的缓存策略跟Picasso不同,从使用场景来看Picasso应该更合逻辑一些。

另外Fresco这个库本身对包size增加太多了。如果不是有各种gif动画播放或者海量高清图片展示的话,感觉用不到。

目前看过效率最高的是GreenDao,不比直接使用sql语句执行慢,而且接口设计也很干净。研究过GreenDao的源码,深感我自己写也写不出更快的实现了。