【Android基础笔记01】Android开发环境搭建和HelloWorld
最近手头项目3.0版本要上线了, 没有那么多工作压力了, 抽空看了看之前在云笔记上做的笔记 都是一些基础知识 给大家分享出来吧
一、什么是Android?【了解 】
Android(中文俗称安卓)是一个以Linux内核为基础的半开源的移动设备操作系统,可以用在手机、平板电脑和其他移动嵌入式设备上。它由Google所领导的Open Handset Alliance(OHA,开放手机联盟)所维护和持续开发,它的1.0 Beta版在2007年上市,截止2012年底,Android系统已经成为世界上市场份额最大的手机操作系统。
- Android公司于2003年在美国加州成立,创始人Andy Rubin;
- 2005年由Google收购注资,并组建开放手机联盟;
- 2007年11月12日,Google发布Android1.0操作系统;
- 2008年9月,首款搭载Android 1.0 OS的Android手机诞生T-Mobile G1。不支持触摸输入,因此G1配置实体键盘。(HTC宏达电代加工);
- 2009年4月30日发布Android 1.5 Cupcake。这是Android发展历史上第一个重要的里程碑。此后,Android系统版本都是以甜点进行命名,并以字母排序;
- 2009年9月15日发布Android 1.6 Donut。Android1.6首次支持了CDMA网络;
- 2009年11月Android 2.0 Eclair降临了。它是Android发展历史上第二个重要的里程碑;
- 2010年5月20日发布Android 2.2 Froyo。直到Android2.2发布时,谷歌似乎才开始认真考虑Android的企业级功能;
- 2010年12月7日发布Android 2.3 Gingerbread。该版本开始对NFC的支持(Near Field Communication);
- 2011年2月2日发布Android 3.0 Honeycomb。“蜂巢”正式进军平板电脑。
- 2011年10月19日在香港发布Android4.0 Sandwich。4.0是Android发展历史上又一次重大的升级;
- 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 它是由苹果公司为iPhone、iPad和iPod Touch开发的移动操作系统,它的原名叫做iPhone OS,苹果公司于2010年6月的WWDC大会上宣布将其改为iOS。它的1.0版本于2007年6月发布,截至目前的最新版是iOS 8,于2012年6月在WWDC大会上发布,它可以应用在iPhone 3GS及之后的产品,iPad 2及之后的产品和iPod Touch 4代和5代中。
iOS操作系统下的游戏和动画程序使用了苹果开发的内置加速器,从而可以获得非常出色的2D和3D画面效果,同时iOS的桌面环境也很美观。与微软的系统相似,iOS也是不开源的。iOS使用Objective-C作为应用的开发语言。
4 .BlackBerry 中文名叫做黑莓(不过RIM官方一直未认可“黑莓”这个中文名),它是由加拿大的RIM公司推出的一种移动电子邮件系统终端,其特点是支持推动式电子邮件、移动电话、文字短信、互联网传真、网页浏览及其他无线信息服务。大部分BlackBerry设备都具有全键盘输入功能,BlackBerry手机特别适合于常处理电话、短信和电子邮件业务的商务人群。BlackBerry使用Java作为应用的开发语言。
5. Android
它是由Google公司于2007年11月发布的一款基于Linux内核的手机操作系统,它是由一个被Google领导的叫做开放手机联盟的国际组织所维护和更新,其主要的工作都是由Google公司所完成的。
Android系统具备一套完整的智能手机需要具备的功能,且是开放源代码的,虽然后来被证明了其只算是开放了部分源代码,属于半开源的系统,但它仍然是一份不可多得的、功能完整的可用于学习移动开发技术的优秀素材。Android使用Java作为主要的应用开发语言,在需要更改Android的底层功能时,需要使用C或C++。
四、 Android版本更替【了解】 Android项目的创始人Andy Rubin过去是一名狂热的机器人爱好者,曾自行设计并制造过小机器人,所以Android曾有两个以机器人命名的内部版本代号,分别是Astro(阿童木,1.0正式版)和Bender(发条机器人,1.1版),这两个版本之后,由于商标问题,Google将Android的版本代号由机器人系列改为现在的甜点系列。 Android的版本代号有一定规律,他按照英文字母A、B、C、D的顺序,依次类推命名,现在最新的版本已经到了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.2(API-8) Froyo(冻酸奶) 基于Linux 2.6.32 | 2010-05-20 | 支持将软件安装至扩展内存 集成Chrome的V8 JavaScript引擎到浏览器 支持Adobe Flash 10.1 支持USB分享器 支持WiFi热点功能 |
2.3(API-9,API-10) Gingerbread(姜饼) 基于Linux 2.6.35
| 2010-12-07 | 支持WXGA的屏幕尺寸 电话薄集成Intent Call功能 支持NFC(近场通信) 优化游戏开发支持 新增下载管理员 从YAFFS转变为EXT4文件系统 加入屏幕截图功能 加入Google Talk 修复UI |
3.0(API-11)/ 3.1(API-12)/ 3.2(API-13) Honeycomb(蜂巢) 基于Linux 2.6.36 | 2011-02-02 | 3.X都是平板电脑上使用的版本 新版的Gmail 加入3D加速处理 加入专为平板电脑设计的界面 支持多核心处理器 优化了7寸平板的显式 |
4.0(API-14,API-15) Ice Cream SandWich(冰激凌三明治) 基于Linux 3.0.1 | 2011-10-19 | 加入HOLO主题,并推荐第三方应用使用该主题 相机自带全景模式 大幅改动用户界面 |
4.1(API-16)/ 4.2(API-17) Jelly Bean(果冻豆) 基于Linux 3.0.31 | 4.1:2012-06-28 4.2:2012-10-30 | 4.1版的重要更新内容: 增加“牛油”性能,让用户体验更加顺滑 加入Google Now活动通知功能 加入脱机语言输入 Google Play中加入电视片和电影的购买 大幅改变用户界面设计 集成更多的Google云 不再自带Flash Player 4.2版的重要更新内容: 支持多用户账户 加入通知中心里的设置键 更新Google Now 加入手势输入 支持多媒体无线传输Miracast 加入照片球(球形全景拍摄)功能 |
4.3(API-18) Jelly Bean(果冻豆) | 4.3:2013-7-25 | 支持多用户切换和首先账户 支持智能蓝牙 支持“Bluetooth AVRCP 1.3” Wi-Fi后台自动搜索功能 支持OpenGL ES 3.0 虚拟环绕立体声 流媒体加密 |
4.4(API-19) kitkat(奇巧) | 4.4:2013-9-4 | 支持蓝牙MAP; 支持Chromecast; 更加准确、迅速的Chrome网页渲染体验; 手机丢失后通过Andorid Device Manager寻找或重置手机; “应用下载”界面重新设计; 更简单的Home界面切换方式; Email界面重新设计; 底部Android按键导航栏可隐藏; |
五、 Android的系统架构【掌握】
- 系统核心层(Linux Kernel):该层主要包括:驱动、内存管理、进程管理、网络协议等组件。
- 本地库和运行时环境层:
- Java不能直接访问硬件,要访问硬件,必须使用NDK。NDK是由c/c++语言编写的库(.so文件),该层是对应用程序框架层提供支持的层。
- 应用程序框架层(Application FrameWork):该层一般都是开发人员直接调用的API。该层主要由Java语言编写。
- 应用程序层(Applications):由运行在Dalvik虚拟机上的app组成。(Dalvik是Google公司为Android专门设计的Java虚拟机,运行Java程序的速度比JVM更快)。该层由Java语言编写。
六、 在Windows下搭建Android开发环境 1.Android开发环境搭建前准备【掌握】
- JavaSDK(software development kit)
- AndroidSDK
- Eclipse及ADT插件(android development tools)
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要具备的基础知识
- JavaSE基本知识:集合、IO操作、线程
- WEB开发知识:HTML、jsp、servelet
- 熟练模仿出当天课堂演示代码的内容;
- 完成讲师布置的作业;
- 手写笔记,整理当天学习过程中核心代码
- 有问题及时查api 不明白的单词查阅有道词典
- Android开发环境配置
- Android界面编程(常用布局、基本组件)
- Android高级组件编程(Dialog设计、ListView设计及分页、Toast、Notification、Menu、WebView)
- 事件处理
- Activity及Intent
- Android应用资源的访问
- Android网络应用开发及异步任务AsyncTask
- Android数据存储(内部存储及SDcard存储)和IO
- 使用ContentProvider实现数据共享
- Service编程
- Broadcast编程
- 图像图像处理
- 性能优化、apk安装、平板技术开发
- tools
- platforms
- platform-tools
- docs
- 创建项目
- 编写代码
- 建立AVD(Android模拟器)
- 运行Hello World
- src(开发人员源码放置目录)
- gen(自动生成R.java,所有的资源文件都会在R.java文件中以final static 内部类的形式被注册。所以可以通过R..id,R.layout等形式来访问资源。)
- assets(资产目录。在这个目录中放置的资源文件,不会在R.java文件中被注册。一般程序中的音频或视频文件可以放置在这个目录下。)
- bin(编译后的class等文件在此目录。系自动生成)
- libs(项目自动生成 主要存放第三方jar包)
- res(资源文件。是Android编程中最重要的目录。所有的资源都定义在这个目录下。)
- drawable(图片放置的目录)【备注:android中不允许图片资源的文件名中出现大写字母,并且不能以数字开头】
- layout(布局文件放置的目录)
- menu(菜单文件放置的目录)
- values(字符串、尺寸等文件放置的目录)
- AndroidManifest.xml (Android清单文件——是Android开发中非常重要的文件。
- 该文件中定义了本App的版本号;
- 适用的手机操作系统最大及最小的兼容版本号;
- 整个项目中每写一个组件(Activity、Service、Broadcast),都需要在该清单文件中注册;
- 运行本程序的权限等等。
- 是否在R.java文件中被注册;
- res所放的文件类型是规定好的;而assests目录下放置的文件类型不限制;
- 访问方法不同。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程序初体验:
- 在xml布局文件中给一个文本控件的id赋值;
- 在MainActivity的onCreate方法中,加载该文本控件;
- 给该文本控件赋值。
- 核心代码如下:
- 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文件安装到设备上。
- 卸载软件 命令1:adb uninstall <软件名> 命令2:adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件。
- 登录设备shell 命令1:adb shell 命令2:adb shell
命令> 这个命令将登录设备的shell。后面加 命令>将是直接运行设备命令,相当于执行远程命令。 - 从PC上发送文件到目标机 命令:adb push <本地路径> <远程路径> 用push命令可以把PC上的文件或者文件夹复制到Android目标机中。
- 从目标机上下载文件到PC 命令:adb pull <远程路径> <本地路径> 用pull命令可以把Android目标机上的文件或者文件夹复制到PC
- 显示帮助信息 命令:adb help 这个命令将显示帮助信息。
Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。
4.Emulator Android模拟器本身。
5.LogCat 日志记录工具,这个工具很常用,可以理解为C或Java程序中的控制台输出,常被用来在手写代码的调试方式中,输出调试信息,使用时在代码中先使用import关键字导入android.util.Log包,然后在代码中使用Log.d(String, String)、Log.i(String, String)等方法输出调试信息即可。
6.SDK Manager SDK的管理器,使用自动更新的方式从Google服务器中下载最新的SDK版本及工具到本机。
更多相关文章
- android apk安装原理分析
- 深入理解:Android(安卓)编译系统
- Android下使用dlopen函数动态调用.so链接库
- Android(安卓)Button及TextView动态变换颜色
- Android(安卓)4.4.2插入exFAT格式U盘识别及加载的解决方案
- Android(安卓)设备root 原理及方法
- 日积月累--exception记录
- Android视频播放器---播放远程非流MP4
- NPM 和webpack 的基础使用