【Android基础笔记01】Android开发环境搭建和HelloWorld


 
  
最近手头项目3.0版本要上线了, 没有那么多工作压力了, 抽空看了看之前在云笔记上做的笔记 都是一些基础知识 给大家分享出来吧


一、什么是Android?【了解 】

Android(中文俗称安卓)是一个以Linux内核为基础的半开源的移动设备操作系统,可以用在手机、平板电脑和其他移动嵌入式设备上。它由Google所领导的Open Handset AllianceOHA,开放手机联盟)所维护和持续开发,它的1.0 Beta版在2007年上市,截止2012年底,Android系统已经成为世界上市场份额最大的手机操作系统。


二、 Android的发展历史【了解】
 
  
  1. Android公司于2003年在美国加州成立,创始人Andy Rubin;
  2. 2005年由Google收购注资,并组建开放手机联盟;
  3. 2007年11月12日,Google发布Android1.0操作系统;
  4. 2008年9月,首款搭载Android 1.0 OS的Android手机诞生T-Mobile G1。不支持触摸输入,因此G1配置实体键盘。(HTC宏达电代加工);
  5. 2009年4月30日发布Android 1.5 Cupcake。这是Android发展历史上第一个重要的里程碑。此后,Android系统版本都是以甜点进行命名,并以字母排序;
  6. 2009年9月15日发布Android 1.6 Donut。Android1.6首次支持了CDMA网络;
  7. 2009年11月Android 2.0 Eclair降临了。它是Android发展历史上第二个重要的里程碑;
  8. 2010年5月20日发布Android 2.2 Froyo。直到Android2.2发布时,谷歌似乎才开始认真考虑Android的企业级功能;
  9. 2010年12月7日发布Android 2.3 Gingerbread。该版本开始对NFC的支持(Near Field Communication);
  10. 2011年2月2日发布Android 3.0 Honeycomb。“蜂巢”正式进军平板电脑。
  11. 2011年10月19日在香港发布Android4.0 Sandwich。4.0是Android发展历史上又一次重大的升级;
  12. 2012年6月28日发布Android 4.1/4.2 Jellybean。Android4.1是谷歌继蜂巢之后,一次全新的平板策略尝试。
三、移动操作系统简介【了解】

1. Windows Mobile / Phone
它是由微软公司推出的移动设备操作系统。它的一大优势是将用户熟悉的Windows桌面环境应用在了移动设备中,这样可以减少用户的适应时间,并能让用户在移动设备上使用到与桌面Windows中相同的应用程序。与其桌面操作系统相同,Windows Mobile / Phone也是不开放源代码的。Windows Mobile / Phone使用C#C++作为应用的开发语言。

2. IOS
它是由苹果公司为iPhoneiPadiPod Touch开发的移动操作系统,它的原名叫做iPhone OS,苹果公司于20106月的WWDC大会上宣布将其改为iOS。它的1.0版本于20076月发布,截至目前的最新版是iOS 8,于20126月在WWDC大会上发布,它可以应用在iPhone 3GS及之后的产品,iPad 2及之后的产品和iPod Touch 4代和5代中。

iOS操作系统下的游戏和动画程序使用了苹果开发的内置加速器,从而可以获得非常出色的2D3D画面效果,同时iOS的桌面环境也很美观。与微软的系统相似,iOS也是不开源的。iOS使用Objective-C作为应用的开发语言


3. Symbian
大名鼎鼎的Symbian操作系统曾经一度称霸手机领域达数年之久,它的第一代系统于1999年被推出,叫做Symbian 5.0,在2005年全球出货量猛增,2008年被诺基亚全资收购,成为后者旗下公司。但是之后由于代码滞后、第三方开发难度大、触屏体验不佳和版本兼容性差等缺点,与竞争对手iOSAndroid相比不再具有优势,从而逐渐被对手抢占了市场份额。Symbian曾开放过一段时间源代码,但后来又封闭了。Symbian使用C++作为应用的开发语言。

4 .BlackBerry
中文名叫做黑莓(不过RIM官方一直未认可“黑莓”这个中文名),它是由加拿大的RIM公司推出的一种移动电子邮件系统终端,其特点是支持推动式电子邮件、移动电话、文字短信、互联网传真、网页浏览及其他无线信息服务。大部分BlackBerry设备都具有全键盘输入功能,BlackBerry手机特别适合于常处理电话、短信和电子邮件业务的商务人群。BlackBerry使用Java作为应用的开发语言。

5. Android

它是由Google公司于200711月发布的一款基于Linux内核的手机操作系统,它是由一个被Google领导的叫做开放手机联盟的国际组织所维护和更新,其主要的工作都是由Google公司所完成的。

Android系统具备一套完整的智能手机需要具备的功能,且是开放源代码的,虽然后来被证明了其只算是开放了部分源代码,属于半开源的系统,但它仍然是一份不可多得的、功能完整的可用于学习移动开发技术的优秀素材。Android使用Java作为主要的应用开发语言,在需要更改Android的底层功能时,需要使用CC++

四、 Android版本更替【了解】 Android项目的创始人Andy Rubin过去是一名狂热的机器人爱好者,曾自行设计并制造过小机器人,所以Android曾有两个以机器人命名的内部版本代号,分别是Astro(阿童木,1.0正式版)和Bender(发条机器人,1.1版),这两个版本之后,由于商标问题,GoogleAndroid的版本代号由机器人系列改为现在的甜点系列。
Android的版本代号有一定规律,他按照英文字母ABCD的顺序,依次类推命名,现在最新的版本已经到了k字母,叫做android 4.4 KitKat(奇巧),也就是4.4版。
Android L即Android5.0是最新一代的Android操作系统,由于谷歌官方发布此版本名称为Android L,所以按常理是没有Android5.0一称,AndroidL本身含有字母并不代表本版本有代号,谷歌官方也承认版本无代号。

版本号

发布时间

重要的更新内容

1.0 Beta

2007-11-12

发布Android SDK预览版,供开发者测试使用,并收集用户反馈

1.0

Astro(阿童木)

2008-09-23

发布第一个正式稳定版Android SDK v1.0

Google开放了Android平台的源代码

1.1

Bender(发条机器人)

2009-02

发布了Android SDK v1.1

1.5

Cupcake(纸杯蛋糕)

基于Linux 2.6.27

2009-04-30

支持播放和拍摄影片,并上传到Youtube

支持立体声蓝牙耳机

采用WebKit技术的浏览器

大大提高GPS性能

提供屏幕虚拟键盘

Home界面增加音乐播放器和相册

应用程序自动随着智能手机旋转

1.6

Donut(甜甜圈)

基于Linux 2.6.29

2009-09-15

支持手势

支持CDMA网络

重新设计了Android Market

支持OpenCore2引擎

2.0 / 2.1

Éclair(松饼)

基于Linux 2.6.29

2009-10-26

支持HTML5

制作新的联系人程序

Google Maps升级为3.1.2

支持Microsoft Exchange

支持蓝牙2.1

支持内置相机闪光灯

改进虚拟键盘

支持数码变焦

2.2API-8

Froyo(冻酸奶)

基于Linux 2.6.32

2010-05-20

支持将软件安装至扩展内存

集成ChromeV8 JavaScript引擎到浏览器

支持Adobe Flash 10.1

支持USB分享器

支持WiFi热点功能

2.3API-9API-10

Gingerbread(姜饼)

基于Linux 2.6.35

 

2010-12-07

支持WXGA的屏幕尺寸

电话薄集成Intent Call功能

支持NFC(近场通信)

优化游戏开发支持

新增下载管理员

YAFFS转变为EXT4文件系统

加入屏幕截图功能

加入Google Talk

修复UI

3.0API-11/ 3.1API-12/ 3.2API-13

Honeycomb(蜂巢)

基于Linux 2.6.36

2011-02-02

3.X都是平板电脑上使用的版本

新版的Gmail

加入3D加速处理

加入专为平板电脑设计的界面

支持多核心处理器

优化了7寸平板的显式

4.0API-14API-15

Ice Cream SandWich(冰激凌三明治)

基于Linux 3.0.1

2011-10-19

加入HOLO主题,并推荐第三方应用使用该主题

相机自带全景模式

大幅改动用户界面

4.1API-16/ 4.2API-17

Jelly Bean(果冻豆)

基于Linux 3.0.31

4.12012-06-28

4.22012-10-30

4.1版的重要更新内容:

增加“牛油”性能,让用户体验更加顺滑

加入Google Now活动通知功能

加入脱机语言输入

Google Play中加入电视片和电影的购买

大幅改变用户界面设计

集成更多的Google

不再自带Flash Player

4.2版的重要更新内容:

支持多用户账户

加入通知中心里的设置键

更新Google Now

加入手势输入

支持多媒体无线传输Miracast

加入照片球(球形全景拍摄)功能

4.3API-18

Jelly Bean(果冻豆)

4.32013-7-25

支持多用户切换和首先账户

支持智能蓝牙

支持“Bluetooth AVRCP 1.3”

Wi-Fi后台自动搜索功能

支持OpenGL ES 3.0

虚拟环绕立体声

流媒体加密

4.4API-19

kitkat(奇巧)

4.42013-9-4

支持蓝牙MAP;

支持Chromecast;

更加准确、迅速的Chrome网页渲染体验;

手机丢失后通过Andorid Device Manager寻找或重置手机;

“应用下载”界面重新设计;

更简单的Home界面切换方式;

Email界面重新设计;

底部Android按键导航栏可隐藏;


五、 Android的系统架构【掌握】
 
  
  1. 系统核心层(Linux Kernel):该层主要包括:驱动、内存管理、进程管理、网络协议等组件。
  2. 本地库和运行时环境层:
  3. Java不能直接访问硬件,要访问硬件,必须使用NDK。NDK是由c/c++语言编写的库(.so文件),该层是对应用程序框架层提供支持的层。
  4. 应用程序框架层(Application FrameWork):该层一般都是开发人员直接调用的API。该层主要由Java语言编写。
  5. 应用程序层(Applications):由运行在Dalvik虚拟机上的app组成。(Dalvik是Google公司为Android专门设计的Java虚拟机,运行Java程序的速度比JVM更快)。该层由Java语言编写。
Java的虚拟机与Dalvik虚拟机的区别:
1.java中的虚拟机多个应用程序在同一个虚拟机中执行,android的每一个应用程序都在单独的进程中,每个应用程序都有一个单独的 Dalvik虚拟机实例;
2.java虚拟机基于栈结构, Dalvik基于寄存器。
3.java虚拟机直接编译运行字节码文件,安卓虚拟机需要dx工具将字节码变成dex中间码



六、 Windows下搭建Android开发环境
1.Android开发环境搭建前准备【掌握】
  • JavaSDK(software development kit)
  • AndroidSDK
  • Eclipse及ADT插件(android development tools)
2.开发环境搭建(常规安装步骤):【掌握】
2. 1、安装JavaSDK( http://www.oracle.com/technetwork/java/javase/downloads/index.html ),配置环境变量
2.2、安装Eclipse( http://www.eclipse.org/downloads/ )
2.3、安装Android SDK( http://developer.android.com/sdk/index.html 注意:下载的是sdk tools需要选择下载sdk版本 ),完成配置
2.4、安装ADT插件,下载安装包(https://dl-ssl.google.com/android/eclipse/)
2.5、创建AVD

3.快速安装【掌握】
3. 1、拷贝其他机器中android sdk和eclipse
3.2、修改Eclipse中配置信息
3.3、创建AVD(android virtual device)
备注:下载网址: http://developer.android.com/sdk/index.html 一般仅提供最新的sdk版本

Eclipse的首选项设置:】
1、字符集设置:
  • Windows---Preferences----General——Editors——TextEditors——Spelling——utf-8
  • Windows---Preferences----General——Workspace——Other——UTF-8
七、Android学习路线图:
  1. 学习Android要具备的基础知识
  2. JavaSE基本知识:集合IO操作、线程
  3. WEB开发知识:HTML、jsp、servelet
八、如何学习Android?
  1. 熟练模仿出当天课堂演示代码的内容;
  2. 完成讲师布置的作业;
  3. 手写笔记,整理当天学习过程中核心代码
  4. 有问题及时查api 不明白的单词查阅有道词典
八、Andorid要掌握的核心内容:
  1. Android开发环境配置
  2. Android界面编程(常用布局、基本组件)
  3. Android高级组件编程(Dialog设计、ListView设计及分页、Toast、Notification、Menu、WebView)
  4. 事件处理
  5. Activity及Intent
  6. Android应用资源的访问
  7. Android网络应用开发及异步任务AsyncTask
  8. Android数据存储(内部存储及SDcard存储)和IO
  9. 使用ContentProvider实现数据共享
  10. Service编程
  11. Broadcast编程
  12. 图像图像处理
  13. 性能优化、apk安装、平板技术开发
九、Android-sdk目录结构介绍:
  1. tools
  2. platforms
  3. platform-tools
  4. docs
十、Android HelloWorld【掌握】
  1. 创建项目
  2. 编写代码
  3. 建立AVD(Android模拟器)
  4. 运行Hello World
十一、HelloWorld及Android项目目录结构介绍【重点掌握】
  1. src(开发人员源码放置目录)
  2. gen(自动生成R.java,所有的资源文件都会在R.java文件中以final static 内部类的形式被注册。所以可以通过R..id,R.layout等形式来访问资源。)
  3. assets(资产目录。在这个目录中放置的资源文件,不会在R.java文件中被注册。一般程序中的音频或视频文件可以放置在这个目录下。)
  4. bin(编译后的class等文件在此目录。系自动生成)
  5. libs(项目自动生成 主要存放第三方jar包)
  6. res(资源文件。是Android编程中最重要的目录。所有的资源都定义在这个目录下。)
  7. drawable(图片放置的目录)【备注:android中不允许图片资源的文件名中出现大写字母,并且不能以数字开头
  8. layout(布局文件放置的目录)
  9. menu(菜单文件放置的目录)
  10. values(字符串、尺寸等文件放置的目录)
  11. AndroidManifest.xml (Android清单文件——是Android开发中非常重要的文件。
  • 该文件中定义了本App的版本号;
  • 适用的手机操作系统最大及最小的兼容版本号;
  • 整个项目中每写一个组件(Activity、Service、Broadcast),都需要在该清单文件中注册;
  • 运行本程序的权限等等。
【备注:】res和assests目录的不同:
  1. 是否在R.java文件中被注册;
  2. res所放的文件类型是规定好的;而assests目录下放置的文件类型不限制;
  3. 访问方法不同。res中文件使用R.内部静态类.id来访问;而assest中的文件通过IO流来访问。

十二、需要掌握的单词缩写:
专业英文缩写及词汇:
API,JDK,SDK,Dalvik,ADT,AVD,Emulator,DDMS,ADB,APK
drawable,activity,intent,manifest,permission

十三、备注:
1、如果通过F3访问到源代码?
点击需要访问的类或者方法,显示界面如下图:





点击“Attach source”,进入下一个界面,选择"External location" , 选择“External Folder”,找到android_sdk下面的sources目录下的某个子目录即可。



十四、Android程序初体验:
  1. 在xml布局文件中给一个文本控件的id赋值;
  2. 在MainActivity的onCreate方法中,加载该文本控件;
  3. 给该文本控件赋值。
  4. 核心代码如下:
  • private TextView text_main_info;
  • text_main_info = (TextView)findViewById(R.id.text_main_info);
  • text_main_info.setText("指定的内容");


十五、Android常用的开发调试工具
1.adb
Android Debug Bridge,简称adb,它是开发和调试Android应用程序中非常有用的一个工具
  • 查看设备  命令:adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。
  • 安装软件 命令:adb install 文件路径> 这个命令将指定的apk文件安装到设备上。
  • 卸载软件 命令1adb uninstall <软件名> 命令2adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件。
  • 登录设备shell 命令1adb shell 命令2adb shell 命令> 这个命令将登录设备的shell。后面加命令>将是直接运行设备命令,相当于执行远程命令。
  • PC上发送文件到目标机 命令:adb push <本地路径> <远程路径> push命令可以把PC上的文件或者文件夹复制到Android目标机中。
  • 从目标机上下载文件到PC 命令:adb pull <远程路径> <本地路径> pull命令可以把Android目标机上的文件或者文件夹复制到PC
  • 显示帮助信息 命令:adb help 这个命令将显示帮助信息。
2.DDMS
DDMS 的全称是Dalvik Debug

Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。


3.AVD Manager
 AVD的管理器,用于新建和管理现有的Android模拟器。

4.Emulator
Android模拟器本身。

5.LogCat
日志记录工具,这个工具很常用,可以理解为CJava程序中的控制台输出,常被用来在手写代码的调试方式中,输出调试信息,使用时在代码中先使用import关键字导入android.util.Log包,然后在代码中使用Log.d(String, String)Log.i(String, String)等方法输出调试信息即可。

6.SDK Manager
SDK的管理器,使用自动更新的方式从Google服务器中下载最新的SDK版本及工具到本机。



 
   


你可能感兴趣的:(Android)