当前位置:首页 » 安卓系统 » androidlinuxkernel

androidlinuxkernel

发布时间: 2023-04-28 04:18:51

Ⅰ 怎样用git获取指定的Android linux Kernel

进入kernel/common,这里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这可能需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.git的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android- goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。

root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git kernel

//把服务器上的所有kernel都下载到本地kernel目录,想只下载一个版本的kernel是不可能的因为服务器上只有一个包含kernel的common.git文件,而没有单个版本kernel的.git文件

[root@localhost mydroid]#cd kernel

[root@localhost kernel]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32

Ⅱ Android操作系统是基于Linux Kernel是什么意思

kernel(内核):是操作系统最基本的部分,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、文件和网络系统,决定着系统的性能和稳定。
Linux内核:顾名思义即Linux系统的核心,是Linux操作系统最基本的部分,所谓内核通俗的讲,就是负责硬件管理,为应用程序招供操作硬件的接口。
Android(安卓):
本质上是一个基于
Linux
内核上面运行的
java
虚拟机,实际上就是一个解释程序。它相当于一个应用程序,应用程序要运行需要一个平台,这个平台是Linux内核。这就是Android操作系统是基于Linux
Kernel的意思。

Ⅲ Android操作系统是基于Linux Kernel是什么意思

每一个操作系统都有不同的内核。像Windows每个版本的内核都不同,而Mac OX用的是Unix的内核,Linux用的是Linux内核。而Android操作系统的内核是Linux,但是他不是一种Linux操作系统。

Ⅳ 如何进入安卓手机linux内核

一、需要准备的东西

1
手机必须要Root,没有的度娘解决。
2
首先安装 终端模拟器 软件,稍后有用,度娘一下搞凯厅定了。

3
然后是Busybox,这是一款高度集成的Linux小工具集合,也很容易找到,安装好就行。

4
安装Android VNC ,用于连接远程桌面。

5

手机内核必须支持loop和ext2文件系统,实践证明ext3,ext4也是可以的。
(1)检验是否支持loop设备
打开 终端模拟器,键入命令 ls /dev/block看是否有loopN设备,N是数字。
(2)ext支持不好确定,多数安卓都支持,毕竟是Linux系统出身嘛,后续交代。

6

由于sourceforge服务器在地球的另一面的美国,所以访问速度自然是不用吐槽的啦,不过还好镜像服务器还是不少的,可以网络搜索sorceforge镜像
选择你喜欢用的系统下载下来吧。
这里要下载两个文件
(1)、镜像文件
有三个版本,完整版(Large)、精简版(smalll)、核心版(core)
可以在服务器相应文件夹下找到zip文件,大小约500MB,解压出来2GB左右。
* 注:完整版和精简版有桌面程序,核心版只有命令行界面
(2)、脚本文件
在相应Linux发行版文件夹里面找到,带script的zip文件就是了,也下载下来。

END
二、后续操作

下载镜像和脚本文件之后在/sdcard上创建一个文件夹,名字与相应的linux发行版名字相同,将下载到的zip文件解压到此处,镜像和脚本都要解压到这个文件夹。
比如笔者的Ubuntu 10.04就是在/sdcard上创建一个名为ubuntu的文件夹,然后把ubuntu.img和ubuntu.sh解压到/sdcard/ubuntu/即可。

然后就是最重要的一步修改脚本了,许多人不成功就是这里没有修改了。
先看一下脚本文件吧!所有的脚本都是差不多的欧!盯塌隐
如图

找到图上第三行的位置,
mount -o remount,rw /dev/block/mmcblk0p5 /system
我们看到这是挂载/system为 可写 状态,但是这里却是挂载的固定是'/dev/block/mmcblk0p5',这肿么可以??要知道安卓的硬件是遍地开花、各式各样都有,/system的所在的设备也各不相同,比如我的是在/dev/block/mmcblk0p19,以前用的是mmcblk0p12,根本不可能统一的

所以我们需要找到/system究竟对应的是那个分区。
方法:给个比较可靠的方法吧,下载一个和你的手机相对应的刷机包,打开\META-INF\com\google\android\updater-script文件,搜索"/dev/block"关键字,找到一条与system相关的一行,看到了这样一行
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
那个带/dev/block的那个就是你的system分区,用它来替换原来脚本的那一个 /dev/block/mmcblk0p5吧!
我的修改结果是
mount -o remount,rw /dev/block/platform/msm_sdcc.1/by-name/system /system
这里因人而异,不要照搬哦!

然后打开终端模拟器,测试一下
1.输入 su 并回车,获取root权限
2.输入 cd /sdcard/ubuntu 进入脚本文件所在目录,这里ubuntu替换你创建的文件夹名字
3.输入 sh ubuntu.sh ,运行ubuntu系统
到这里理论上是应该成功了
出现图一这样的情况时就要输入分辨率了,我的是1280x720,比较常用的还有800x600等
输入1280x720 ,回车

等待出现 root@localhost:/# 你的Linux已经启动成功啦
终端模拟器以经连接到ubuntu的终端了
但是没有桌面让我们怎样愉快的玩耍呀?
所以打开AndroidVNC,配置一下 参数
Nickname:随便写
Password :你的Linux名称,我的是ubuntu
Address : 因为是本机运行,所以写 localhost 或者 127.0.0.1
Port : 默认5900
Username:root
Color Format : 24-color (4bpp)

然后点击左上角Connect即可
然后就看衫旅见了我们期待已久的Ubuntu界面里

但是还有个问题,不支持中文是一个蛋疼的问题啊
所以在安卓系统上找个中文ttf(直接复制/system/fonts/DroidSansFallback.ttf也是可以的)放到/sdcard
进Linux系统后复制字体到
/usr/share/fonts/truetype/ttf-dejavu
重启就能再见到亲切的中文了!

在Linux界面下
1.音量键相当于键盘的上下箭头↑↓
2.双指可以缩放界面,双指滑动可以滚屏
3.按下菜单键-send 可以 触发特殊键 比如 ctrl + alt + delete 关机重启
4.菜单键- Input Mode 可以选择 鼠标操作方式 , 推荐选择touchPad 把触屏当触摸板用

Ⅳ android kernel和标准linux kernel的区别

android kernel和标准linux kernel的区别
总的区别可以归纳如下:
ARCH -- 这是Android修改了arch/arm下面的一些文件:
arch/arm:
Chg: arch/arm/kernel/entry-armv.S
Chg: arch/arm/kernel/mole.c
Chg: arch/arm/kernel/process.c
Chg: arch/arm/kernel/ptrace.c
Chg: arch/arm/kernel/setup.c
Chg: arch/arm/kernel/signal.c
Chg: arch/arm/kernel/traps.c
Chg: arch/arm/mm/cache-v6.S
Chg: arch/arm/vfp/entry.S
Chg: arch/arm/vfp/vfp.h
Chg: arch/arm/vfp/vfphw.S
Chg: arch/arm/vfp/vfpmole.c
Goldfish -- 这是Android为了模拟器所开发的一个虚拟硬件平台。Goldfish执行arm926T指令(在2.6.29中,goldfish也支持ATMv7指令),但是在实际的设备中,该虚拟平台的文件不会被编译
arch/arm/mach-goldfish:
New: arch/arm/mach-goldfish/audio.c
New: arch/arm/mach-goldfish/board-goldfish.c
New: arch/arm/mach-goldfish/pdev_bus.c
New: arch/arm/mach-goldfish/pm.c
New: arch/arm/mach-goldfish/switch.c
New: arch/arm/mach-goldfish/timer.c
YAFFS2 -- 和PC把文件存储在硬盘上不一样, 移动设备一般把Flash作为存储设备。尤其是NAND flash应用非常广泛(绝大多数手机用的都是NAND flash,三星的一些手机使用的是OneNAND)。NAND flash具有低成本和高密度的优点。
YAFFS2 是“Yet Another Flash File System, 2nd edition" 的简称。 它提供在Linux内核和NAND flash设备 之前高效率的接口。 YAFFS2并没有包含在标准的Linux内核中, Google把它添加到了Android的kernel
fs/yaffs2:
New: fs/yaffs2/devextras.h
New: fs/yaffs2/Kconfig
New: fs/yaffs2/Makefile
New: fs/yaffs2/moleconfig.h
New: fs/yaffs2/yaffs_checkptrw.c
New: fs/yaffs2/yaffs_checkptrw.h
New: fs/yaffs2/yaffs_ecc.c
New: fs/yaffs2/yaffs_ecc.h
New: fs/yaffs2/yaffs_fs.c
New: fs/yaffs2/yaffs_getblockinfo.h
New: fs/yaffs2/yaffs_guts.c
New: fs/yaffs2/yaffs_guts.h
New: fs/yaffs2/yaffsinterface.h
New: fs/yaffs2/yaffs_mtdif1.c
New: fs/yaffs2/yaffs_mtdif1.h
New: fs/yaffs2/yaffs_mtdif2.c
New: fs/yaffs2/yaffs_mtdif2.h
New: fs/yaffs2/yaffs_mtdif.c
New: fs/yaffs2/yaffs_mtdif.h
New: fs/yaffs2/yaffs_nand.c
New: fs/yaffs2/yaffs_nandemul2k.h
New: fs/yaffs2/yaffs_nand.h
New: fs/yaffs2/yaffs_packedtags1.c
New: fs/yaffs2/yaffs_packedtags1.h
New: fs/yaffs2/yaffs_packedtags2.c
New: fs/yaffs2/yaffs_packedtags2.h
New: fs/yaffs2/yaffs_qsort.c
New: fs/yaffs2/yaffs_qsort.h
New: fs/yaffs2/yaffs_tagscompat.c
New: fs/yaffs2/yaffs_tagscompat.h
New: fs/yaffs2/yaffs_tagsvalidity.c
New: fs/yaffs2/yaffs_tagsvalidity.h
New: fs/yaffs2/yportenv.h
Bluetooth -- Google为Bluetooth打上了patch,fix了一些Bluetooth的bug
drivers/bluetooth:
Chg: drivers/bluetooth/bfusb.c
Chg: drivers/bluetooth/bt3c_cs.c
Chg: drivers/bluetooth/btusb.c
Chg: drivers/bluetooth/hci_h4.c
Chg: drivers/bluetooth/hci_ll.c
Scheler -- 对于Scheler的改变非常小,我对它并没有去研究。
Chg: kernel/sched.c

New Android Functionality -- 除了fix一些bug以及其他一些小的更改,Android增加了一些新的功能,介绍如下:
IPC Binder -- The IPC Binder is an Inter-Process Communication (IPC) mechanism. It allows processes to provide services to other processes via a set of higher-level APIs than are available in standard Linux. An Internet search indicated that the Binder concept originated at Be, Inc., and then made its way into Palm's software, before Google wrote a new Binder for Android.
New: drivers/staging/android/binder.c
Low Memory Killer -- Android adds a low-memory killer that, each time it's called, scans the list of running Linux processes, and kills one. It was not clear in our cursory examination why Android adds a low-memory killer on top of the already existing one in the standard Linux kernel.
New: drivers/staging/android/lowmemorykiller.c
Ashmem -- Ashmem is an Anonymous SHared MEMory system that adds interfaces so processes can share named blocks of memory. As an example, the system could use Ashmem to store icons, which multiple processes could then access when drawing their UI. The advantage of Ashmem over traditional Linux shared memory is that it provides a means for the kernel to reclaim these shared memory blocks if they are not currently in use. If a process then tries to access a shared memory block the kernel has freed, it will receive an error, and will then need to reallocate the block and reload the data.
New: mm/ashmem.c
RAM Console and Log Device -- To aid in debugging, Android adds the ability to store kernel log messages to a RAM buffer. Additionally, Android adds a separate logging mole so that user processes can read and write user log messages.
New: drivers/staging/android/ram_console.c
Android Debug Bridge -- Debugging embedded devices can best be described as challenging. To make debugging easier, Google created the Android Debug Bridge (ADB), which is a protocol that runs over a USB link between a hardware device running Android and a developer writing applications on a desktop PC.
drivers/usb/gadget:
New: drivers/usb/gadget/android.c
Chg: drivers/usb/gadget/composite.c
Chg: drivers/usb/gadget/f_acm.c
New: drivers/usb/gadget/f_acm.h
New: drivers/usb/gadget/f_adb.c
New: drivers/usb/gadget/f_adb.h
New: drivers/usb/gadget/f_mass_storage.c
New: drivers/usb/gadget/f_mass_storage.h

Android also adds a new real-time clock, switch support, and timed GPIO support. We list the impacted files for these new moles at the end of this document.
Power Management -- Power management is one of the most difficult pieces to get right in mobile devices, so we split it out into a group separate from the other pieces. It's interesting to note that Google added a new power management system to Linux, rather than reuse what already existed. We list the impacted files at the end of this document.
kernel/power:
New: kernel/power/consoleearlysuspend.c
New: kernel/power/earlysuspend.c
New: kernel/power/fbearlysuspend.c
Chg: kernel/power/main.c
Chg: kernel/power/power.h
Chg: kernel/power/process.c
New: kernel/power/userwakelock.c
New: kernel/power/wakelock.c
Miscellaneous Changes -- In addition to the above, we found a number of changes that could best be described as, 'Miscellaneous.' Among other things, these changes include additional debugging support, keypad light controls, and management of TCP networking.
(freedom_asic)

Ⅵ android kernel和标准linux kernel的区别

android kernel和标准linux kernel的区别

android kernel和标准linux kernel的区别
总的区别可以归纳如下:
ARCH -- 这是Android修改了arch/arm下面的一些档案:
arch/arm:
Chg: arch/arm/kernel/entry-armv.S
Chg: arch/arm/kernel/mole.c
Chg: arch/arm/kernel/process.c
Chg: arch/arm/kernel/ptrace.c
Chg: arch/arm/kernel/setup.c
Chg: arch/arm/kernel/signal.c
Chg: arch/arm/kernel/traps.c
Chg: arch/arm/mm/cache-v6.S
Chg: arch/arm/vfp/entry.S
Chg: arch/arm/vfp/vfp.h
Chg: arch/arm/vfp/vfphw.S
Chg: arch/arm/vfp/vfpmole.c
Goldfish -- 这是Android为了模拟器所开发的一个虚拟硬体平台。Goldfish执行arm926T指令(在2.6.29中,goldfish也支援ATMv7指令),但是在实际的装置中,该虚拟平台的档案不会被编译。
arch/arm/mach-goldfish:
New: arch/arm/mach-goldfish/audio.c
New: arch/arm/mach-goldfish/board-goldfish.c
New: arch/arm/mach-goldfish/pdev_bus.c
New: arch/arm/mach-goldfish/pm.c
New: arch/arm/mach-goldfish/switch.c
New: arch/arm/mach-goldfish/timer.c
YAFFS2 -- 和PC把档案储存在硬盘上不一样, 移动装置一般把Flash作为储存装数模链置。尤其是NAND flash应用非常广泛(绝大多数手机用的都是NAND flash,三星的一些手机使用的是OneNAND)。NAND flash具有低成码带本和高密度的优点。
YAFFS2 是“Yet Another Flash File System, 2nd edition" 的简称。 它提供在Linux核心和NAND flash装置 之前高效率的接口。 YAFFS2并没薯孙有包含在标准的Linux核心中, Google把它新增到了Android的kernel
fs/yaffs2:
New: fs/yaffs2/devextras.h
New: fs/yaffs2/Kconfig
New: fs/yaffs2/Makefile
New: fs/yaffs2/moleconfig.h
New: fs/yaffs2/yaffs_checkptrw.c
New: fs/yaffs2/yaffs_checkptrw.h
New: fs/yaffs2/yaffs_e.c
New: fs/yaffs2/yaffs_e.h
New: fs/yaffs2/yaffs_fs.c
New: fs/yaffs2/yaffs_getblockinfo.h
New: fs/yaffs2/yaffs_guts.c
New: fs/yaffs2/yaffs_guts.h
New: fs/yaffs2/yaffsinterface.h
New: fs/yaffs2/yaffs_mtdif1.c
New: fs/yaffs2/yaffs_mtdif1.h
New: fs/yaffs2/yaffs_mtdif2.c
New: fs/yaffs2/yaffs_mtdif2.h
New: fs/yaffs2/yaffs_mtdif.c
New: fs/yaffs2/yaffs_mtdif.h
New: fs/yaffs2/yaffs_nand.c
New: fs/yaffs2/yaffs_nandemul2k.h
New: fs/yaffs2/yaffs_nand.h
New: fs/yaffs2/yaffs_packedtags1.c
New: fs/yaffs2/yaffs_packedtags1.h
New: fs/yaffs2/yaffs_packedtags2.c
New: fs/yaffs2/yaffs_packedtags2.h
New: fs/yaffs2/yaffs_qsort.c
New: fs/yaffs2/yaffs_qsort.h
New: fs/yaffs2/yaffs_tagspat.c
New: fs/yaffs2/yaffs_tagspat.h
New: fs/yaffs2/yaffs_tagsvalidity.c
New: fs/yaffs2/yaffs_tagsvalidity.h
New: fs/yaffs2/yportenv.h
Bluetooth -- Google为Bluetooth打上了patch,fix了一些Bluetooth的bug
drivers/bluetooth:
Chg: drivers/bluetooth/bfu *** .c
Chg: drivers/bluetooth/bt3c_cs.c
Chg: drivers/bluetooth/btu *** .c
Chg: drivers/bluetooth/hci_h4.c
Chg: drivers/bluetooth/hci_ll.c
Scheler -- 对于Scheler的改变非常小,我对它并没有去研究。
Chg: kernel/sched.c

New Android Functionality -- 除了fix一些bug以及其他一些小的更改,Android增加了一些新的功能,介绍如下:
IPC Binder -- The IPC Binder is an Inter-Process Communication (IPC) mechani *** . It allows processes to provide services to other processes via a set of higher-level APIs than are available in standard Linux. An Inter search indicated that the Binder concept originated at Be, Inc., and then made its way into Palm's sofare, before Google wrote a new Binder for Android.
New: drivers/staging/android/binder.c
Low Memory Killer -- Android adds a low-memory killer that, each time it's called, scans the list of running Linux processes, and kills one. It was not clear in our cursory examination why Android adds a low-memory killer on of the already existing one in the standard Linux kernel.
New: drivers/staging/android/lowmemorykiller.c
Ashmem -- Ashmem is an Anonymous SHared MEMory system that adds interfaces so processes can share named blocks of memory. As an example, the system could use Ashmem to store icons, which multiple processes could then aess when drawing their UI. The advantage of Ashmem over traditional Linux shared memory is that it provides a means for the kernel to reclaim these shared memory blocks if they are not currently in use. If a process then tries to aess a shared memory block the kernel has freed, it will receive an error, and will then need to reallocate the block and reload the data.
New: mm/ashmem.c
RAM Console and Log Device -- To aid in debugging, Android adds the ability to store kernel log messages to a RAM buffer. Additionally, Android adds a separate logging mole so that user processes can read and write user log messages.
New: drivers/staging/android/ram_console.c
Android Debug Bridge -- Debugging embedded devices can best be described as challenging. To make debugging easier, Google created the Android Debug Bridge (ADB), which is a protocol that runs over a USB link beeen a hardware device running Android and a developer writing applications on a desk PC.
drivers/u *** /gadget:
New: drivers/u *** /gadget/android.c
Chg: drivers/u *** /gadget/posite.c
Chg: drivers/u *** /gadget/f_acm.c
New: drivers/u *** /gadget/f_acm.h
New: drivers/u *** /gadget/f_adb.c
New: drivers/u *** /gadget/f_adb.h
New: drivers/u *** /gadget/f_mass_storage.c
New: drivers/u *** /gadget/f_mass_storage.h
Android also adds a new real-time clock, switch support, and timed GPIO support. We list the impacted files for these new moles at the end of this document.
Power Management -- Power management is one of the most difficult pieces to get right in mobile devices, so we split it out into a group separate from the other pieces. It's interesting to note that Google added a new power management system to Linux, rather than reuse what already existed. We list the impacted files at the end of this document.
kernel/power:
New: kernel/power/consoleearlysuspend.c
New: kernel/power/earlysuspend.c
New: kernel/power/fbearlysuspend.c
Chg: kernel/power/main.c
Chg: kernel/power/power.h
Chg: kernel/power/process.c
New: kernel/power/userwakelock.c
New: kernel/power/wakelock.c
Miscellaneous Changes -- In addition to the above, we found a number of changes that could best be described as, 'Miscellaneous.' Among other things, these changes include additional debugging support, keypad light controls, and management of TCP neorking.
(freedom_asic)

Android kernel是从linux kernel 修改过来的,大部分的核心没什么变化。Android厂商会定制原始码修改驱动 或者增加新的特性等。

Ⅶ 安卓的 linux kernel是什么意思

安卓本来就是构建在linux系统下的一个操作系带正统。
它必须调用Linux内核指键才能运行。
linux kernel的意唯行巧思就是linux核心,是安卓系统的最底层。

Ⅷ 安卓系统是基于linux内核开发的,两者的具体区别是什么为什么安卓多用于移动设备而linux不是

安卓基于linux内核,但是针对移动设备做了更多的优化,所以安卓多用于移动设备。两者区别如下:

一、主体不同

1、安卓系统:是一种基于Linux的自由及开放源代码的操作系统。

2、linux内核:是一套免费使用和自由传播的类UNIX操作系统。

二、应用不同

1、安卓系统:主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

2、linux内核:是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。


三、特点不同

1、安卓系统:会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

2、linux内核:继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Ⅸ 安卓与Linux有什么关系

安卓与Linux有什么关系

按照是Linux核心但是借用了java虚拟机器技术,并组织编制的一个类Java作业系统。。。区别Linux的就是库和使用者接口都是用的java技术。。。而Linux的桌面和api则是他们自身程式设计形成的。。。

Android是一种基于Linux的自由及开放原始码的作业系统,主要使用于移动装置,如智慧手机和平板电脑,由Google公司和开放手机联盟领导及开发。
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),网路堆叠(Neork Stack),驱动程式模型(Driver Model)等。下载Android原始码之前,先要安装其构建工具 Repo来初始化原始码。Repo 是 Android 用来辅助Git工作的一个工具。

Linux和安卓有什么关系?

Linux与Androld的关系
虽然Android基于Linux核心,但是它与Linux之间还是有很大的差别,比如Android在Linux核心的基础上添加了自己所特有的驱动程式。下面我们就来分析一下它们之间究竟有什么千丝万缕关系?
1 安卓为什么会选择Linux
成熟的作业系统有很多,比如Unix系统。但是Android为什么选择采用Linux核心呢?这就与Linux的一些特性有关了,比如:
(1)强大的记忆体管理和程序管理方案
(2)基于许可权的安全模式
(3)支援共享库
(4)经过认证的驱动模型
(5)Linux本身就是开源专案
更多关于上述特性的资讯可以参考Linux 2.6版核心的官方文件,这便于我们在后面的学习中更好地理解Android所特有的功能特性。接下来分析Android与Linux真正的关系。
2Android不是Linu×
看到这个标题大家可能会有些迷惑,前面不是一直说Android是基于Linux核心的吗,怎么现在又不是Linux了?迷惑也是正常的,请先看下面几个要点,然后我们将对每一个要点进
行分析,看完后你就会觉得Android不是Linux了。
①它没有本地视窗系统
(1)它没有glibc的支援
(2)它并不包括一整套标准的Linux使用程式
(3)它增强了Linux以支援其特有的驱动
1、它没有本地视窗系统
什么是本地视窗系统呢?本地视窗系统是指GNU/Linux上的X视窗系统,或者Mac OS的Quartz等。不同的作业系统的视窗系统可能不一样,Android并没有使用(也不需要使用)Linux的X视窗系统,这是Android不是Linux的一个基本原因。
2、它没有glibc支援
由于Android最初用于一些便携的移动装置上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为C库,而是Google自己开发了一套Bionic Libc来代替glibc。
3、它并不包括一整套标准的Linux使用程式
Android并没有完全照搬Linux系统的核心,除了修正部分Linux的Bug之外,还增加了不少内容,比如:它基于ARM构架增加的Gold-Fish平台,以及yaffs2 FLASH档案系统等。
4、Android专有的驱动程式
除了上面这些不同点之外,Android还对Linux装置驱动进行了增强,主要如下所示。
(1) Android Binder基于OpenBinder框架的一个驱动,用于提供Android平台的程序间通讯( InterProcess Communication,IPC)功能。原始码位于
drivers/staging/android/binder.c。
(2) Android电源管理(PM) 一个基于标准Linux电源管理系统的轻量级Android电源管理驱动,针对嵌入式装置做了很多优化。源伐码位于:
Ⅰ kerneUpower/earlysuspend.c
Ⅱ kernel/power/consoleearlysuspend.c
Ⅲ kernel/power/fbearlysuspend.c
Ⅳ kemel/power/wakelock.c
Ⅴ kernel/power/userwakelock.c
(3)低记忆体管理器(Low Memory Killer) 比Linux的标准的OOM(Out Of Memory)机制更加灵活,它可以根据需要杀死程序以释放需要的记忆体。原始码位于
drivers/staging/android/lowmemorykiller.c.
(4)匿名共享记忆体(Ashmem) 为程序间提供大块共享记忆体,同时为核心提供回收和管理这个记忆体的机制。原始码位于mm/ashmem.c。
(5) Android PMEM (Physical) PMEM用于向用户空间提供连续的实体记忆体区域,DSP和某些装置只能工作在连续的实体记忆体上。原始码位于drivers/misc/pmem.c。
(6) Android Logger -个轻量级的日志装置,用于抓取Android系统的各种日志。原始码位于drivers/staging/android/logger.c。
(7) Android Alarm捉供了一个定时器,用于把装置从睡眠状态唤醒,同时它还提供了一个即使在装置睡眠时也会执行的时钟基准。原始码位于drivers/rtc/alarm.c。
(8) USB Gadget驱动一个基于标准Linux USB gadget驱动框架的装置驱动,Android的USB驱动是基于gaeget框架的。原始码位于drivers/u *** /gadget/。
(9) Android Ram Console为了提供除错功能,Android允许将除错日志资讯写入一个被称为RAM Console的装置里,它是一个基于RAM的Buffer。原始码位于drivers/staging/android/ramL console.c。
(10) Android timed device提供了对装置进行定时控制的功能,目前支援vibrator和LED装置。原始码位于drivers/staging/android /timed_output.c(timed_gpio.c)。
(11) Yaffs2档案系统Android采用Yaffs2作为MTD nand flash档案系统,原始码位于fs/yaffs2/目录下。Yaffs2是一个快速稳定的应用于NAND和NOR Flash的跨平台的嵌入式装置档案系统,同其他Flash档案系统相比,Yaffs2能使用更小的记忆体来储存其执行状态,因此它占用记忆体小。Yaffs2的垃圾回收非常简单而且快速,因此能表现出更好的效能。Yaffs2在大容量的NAND Flash上的效能表现尤为突出,非常适合大容量的Flash储存。上面这些要点足以说明Android不是Linux。

Linux与Androld的关系
虽然Android基于Linux核心,但是它与Linux之间还是有很大的差别,比如Android在Linux核心的基础上添加了自己所特有的驱动程式。

Ubuntu与Linux有什么关系

正如ls所说,linux有许多发行版本,比如redhat,debian,suse等。所以说debian是linux的一个发行版本,而ubuntu是debian的一个衍生版本。

Android System WebView与安卓7.0之间有什么关系

1.主题面板管理器
在CM等一众第三方系统中,早已支援便捷地修改桌布、图示和系统颜色。在商店和论坛中,也能找到不少优质的面板主题。
而当我们提到原生Android,似乎总是长着一张固定的脸。实际上,在Google自家的AOSP(即Android开源专案)中,早已内建了主题管理。
而在Android M 的开发者预览版中,也加入了主题管理器(可惜被需要Root和特定方式才能启用)。既然系统内的面板主题框架早已搭建好,那就只等Google在Android系统中放出啦。
2.应用程式抽屉的消失
在2月26日,Google Map的官方Twitter释出了一条介绍视讯,其中的展示机Nexus 6P的系统接口中,似乎看不到底部的应用抽屉按钮了。发现问题的同学也开始集体留言质问:‘WHERE IS THE APP DRAWER?!?!’
而在之前也确实有传闻爆料:在新版Android N 中,或许会将应用抽屉的设计去除,选择采用iOS和MIUI的应用呈现方式,即全部在桌面首页中展示。
去除二级选单的做法,会带来更加凌乱的桌面,还是更有效率的操作体验?似乎很难定论,但作为Android玩家,大可选择Nova启动器等优秀的第三方桌面,而不必担心我卓药丸。
3.夜间模式会许要来了
在Android M 的开发者预览版中,Dark Mode夜间模式曾短暂地出现过,而在正式版中又被砍去。
而最新的Android N 泄露图中,黑色背景的右图也表示着:夜间模式回归Android了。
而更加值得期待的是,Google已经放出了夜间模式的开发程式码,开发者可以轻松地为自己的应用设定‘暗色主题’。也许今后只需轻按‘夜间模式’的按钮,从系统到各个应用,都能直接更换成夜间模式。
这一改变,不仅对于越来越多AMOLED萤幕手机而言,是省电的好方法。对于经常深夜玩手机的同学来说,似乎也可以和刺眼的白光说再见了。
4.分屏多工以及平板支援
在LG和三星都推出了‘分屏模式’后,Google在Android N 中加入分屏功能也是众望所归了。同样的,在上一个版本Android M 中,分屏模式也被隐藏起来,需要特定方式才能启用。
不负众望,来自Google的Pixel C 团队在接受Reddit AMA论坛访谈时,确认了‘split screen is in the works’。
而分屏多工,似乎在Android平板上也更加适用。值得一提的是,该团队也宣称Android系统的平板,在Android N 中将会更加好用,而不仅仅是将应用接口拉升就够了。
但对于Chrome OS的联动猜想、DPI切换和和接口的调整,似乎只能等Google I/O那
天,才知道答案。
5.支援触控笔
在三星公布的文件中,我们发现三星在Android N 中,采用了系统自带的触控笔接口,而不再使用原先的S PEN专属接口。
而在Android 5.0 (开始支援节电助手)之前,三星关闭了自家的节电模式接口。在Android 6.0 (开始支援指纹识别)之前,又关闭了自家的指纹识别接口。而在Android 7.0公布之前,三星又再一次关闭了自家的触控笔接口,这……
6.更好的Doze省电模式
Doze省电模式首次出现在Android M 中,其省电原理是在装置休眠时,关闭关闭应用后台,以达到省电的效果。
在亲身体验后,Doze模式确实发挥了很好的效果,起码待机的时候不掉电了。但在目前这一功能,在操作体验和使用者自定义方面,却有些过于简单了。
所以直到今天Android 6.0,我依然选择绿色守护等第三方应用,去实现控制后台应用耗电的问题。但Root终归有风险,而Android N 也有理由提供一个更好用的Doze省电模式。
7.重新设计的通知栏
在设计上,似乎能探寻的蛛丝马迹,则是一张Android N 的通知栏模拟图,国外媒体Android Police在看到开发样机图后,大致模拟出的新版接口截图。
根据爆料,左图通知栏目前已开始尝试承载更多的资讯量,长按后即可检视通知详情。而在右图显示的快速设定页面,将快捷按钮铺满并支援分页,而不像之前只支援固定数量的快捷按钮。
8.更多玩法的指纹识别
随着Nexus 5X和Nexus 6P的释出,Google终于开始为Android提供指纹的支援。在Android 6.0中,关于指纹的接口也正在逐步完善。
在目前看来,似乎指纹最常用也仅限于Play Store和锁屏应用中。期待在Android N 中,能通过指纹解锁完成更多的事情,在iOS的Touch ID上,有许多值得借鉴的场景。也许之后Androidi使用者能通过指纹,便捷地检视Google相簿中的隐私图片,或者直接解锁启动私人应用。
9.为虚拟现实助力
我们知道,Google正尝试着于打造一款,不需要额外硬体的头戴式VR装置。
而反观目前市面上大部分VR产品,软体部分的开发似乎都与Android系统多少有些联络,也许Google自家的VR装置也需要Android的支援。
所以我们有理由相信,Google会为新版本的Android系统,在VR方向上提供更多系统层面的支援。
10.Now on Tap
Now on Tap作为Android M 的重磅功能,在去年收获了业界好评。大致功能则是基于不同情景而直接提供对应资讯,通过识别你正在执行的app中的内容,提供针对性的建议和资料。
比如在网上聊天时,当聊到某部电影时,只需上滑Home键,关于电影的所有资讯就能直接呈现。
而在Android N 中,我们期待它能发挥更大用处。毕竟Now on Tap中‘上下文感知’和‘基于情景’都是是人类智慧的重要能力。
也许之后当我们开启相机,它就能为你找寻镜头中包含的关键资讯。而不仅限于设定日历提醒,或者帮你搜索维基网络那么简单。
综上所述的大部分内容,都是我们作为Android老粉丝的期待和猜想。所有一切都要等到Google I/O 2016才会揭晓。
但不得不说的是,虽然在AppSo年度精选的Android榜中,绝大部分应用都采用了Material Design,但是直到今天,这一设计风格在动效和互动上,依然缺少一个完美的榜样。
我们不会期待Android N 完全改头换面,带来全新的接口,但在图示、按钮、互动动画和接口设计上,我们期待Google能做得更好。

Java和安卓有什么关系

安卓就是Java写的

c语言与安卓开发有什么关系。

安卓的底层使用的是C语言开发的
所以会使用到C语言
另外安卓在嵌入式控制系统中
使用软体控制嵌入式系统的时候会使用到NDK技术
这里面也会使用到C语言开发

java和c 和安卓有什么关系

它们都是计算机语言,c语言称为底层架构与其他两个语言没多大关系,但是学了c后掌握java就很快啦。java是安卓的基础,安卓是基于java平台来编写的。

热点内容
精通脚本 发布:2025-05-20 14:42:56 浏览:385
东方财富经典版如何更改密码 发布:2025-05-20 14:42:43 浏览:944
砸口红解压 发布:2025-05-20 14:41:02 浏览:511
配置sp失败怎么办 发布:2025-05-20 14:35:08 浏览:179
java学到什么程度 发布:2025-05-20 14:31:54 浏览:480
压缩误差分析 发布:2025-05-20 14:27:53 浏览:98
每秒上亿次访问服务器怎么处理 发布:2025-05-20 14:10:07 浏览:315
按键精灵数据库操作 发布:2025-05-20 14:08:33 浏览:593
360浏览器无法访问网络 发布:2025-05-20 14:05:13 浏览:835
存储服务器地址错误 发布:2025-05-20 14:01:46 浏览:913