Android是基于Linux内核开发、主要以Java为开发语言的一个开源的操做系统,主要用于移动设备,如智能手机和平板电脑、可穿戴设备等,固然还有更多的领域使用到了Android系统,例如电视、机顶盒等
为何选用Linux内核html
(这儿把红框内容作成一个图片,例如乔布斯图、Linux图、Java图)
** Steve Jobs – “No One Is Going To Buy A Big Phone”
** Linux团队从Linux内核主线中除名
** Oracle起诉Google,称未取得受权。java
你可能看到今日辉煌的Android,移动操做系统市场90%的占有率,他的历史可谓是至关曲折、一言难尽的
关键字: 2003年、Andy Rubin、Linux内核、Java、 google、2007开源、2008发布第一个版本android
http://developer.android.com/abort/dashboards/
统计web
塞班挂QQ,IOS和Windows Phone期初是不支持后台运行的,后来慢慢的认识到其重要性因此后台慢慢加入了,而安卓从一开始就支持后台功能,既使应用程序在关闭的状况下也会在后台运行。数据库
用于在不一样的程序之间共享数据,即将一些数据共享给他应用,这些数据是一些能够进行二次开发的基础数据,例如:电话簿、短信、多媒体等的数据,他们都实现了跨程序数据共享的功能安全
Android为开发者提供了丰富的系统组件,能够帮助开发者设计出漂亮的界面,固然,随着也能够定制属于本身的控件。网络
Andrid 自带的数据库,支持SQL语法,也有封装好的API,存储和读取很是方便。(在这加代码,记住用户名和密码)多线程
音乐、视频、录音、拍照等,能够用代码进行控制。
链接真机。
通知架构
移动设备相对于PC,地理定位功能应该能够算是一个很大的亮点,结合强大的地图功能,LBS 这一领域潜力很是大。例如外卖、打车、团购、社交、侦查等。oracle
#include <stdio.h> int main() { printf("Hello,World!\n"); return 0; }
开始Hello World之路
####0【‘
Activity
将耗时的操做放到子线程中去,这里就须要用到java的多线程操做
不容许在子线程中更新UI,由于UI是线程不安全的,必须在主线程中更新,不然会异常。
http://developer.android.com/reference/android/Manifest.permission.html
Android系统要求全部的应用软件必须有一个签名文件,直接经过AS运行程序会使用一个默认的签名文件(仅仅适用于开发阶段)
AS生成签名
Gradle生成签名
一方面:
IOS 是基于Unix的,而Unix不是开源的操做系统,iOS一样也没有开源。 iPhone之因此不会出现“越用越卡”的状况,是由于苹果公司对它的手机从硬件到软件拥有最高的管理权限,在封闭式的环境中,来自第三方的应用程序没法调用超过iPhone承受限度的指令,天然也不可能形成持续性的系统损伤。
而安卓是基于LInux,因为Linux核心设定应用在调取系统功能时必定要取得ROOT权限,这也致使大量应用由于单一功能的实现需求而得到整个ROOT层面的支配,能够在Android手机的任意储存位置进行读写,这种高自由度无异于开启了潘多拉魔盒,让Android手机没法对恶意App事先设防
另外一方面:
一个是宏内核,一个是微内核,宏内核会把每一个应用程序当成是系统自身的一部分,而微内核会将CPU分为几部分,当分配的CPU足够支撑应用时其余空闲CPU不会参与。房子的模型。。
如何解决: