导航

Android_开发环境

Posted on 2017-06-16 00:22  Young哥哥  阅读(18)  评论(0)    收藏  举报
  • Android系统
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。[1] 2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
  • Android四层体系架构 
  1. 系统核心层(Linux Kernel)
  2. 执行层c/c++函数库层(Libraries)及Android Runtime
  3. 应用程序框架层(Application FrameWork)
  4. 应用程序层(Applications)
 
 
  • Android环境搭建
Android的开发环境主要由4部分组成,每一部分有不同的作用,功能
JDK(JavaDeveloperKit)
Java开发包。提供Java类库,Java的运行环境
Eclipse
集成开发环境 IDE。提供 编译、调试功能
SDK (SoftDeveloperKit)
Android 的软件开发包,提供Android开发的各种类库、开发工具、运行环境等
ADT plug (Android Developer Tools)
Eclipse 的插件,用于关联SDK、提供开发工具
 
ADT-bundle  将 Eclipse、ADT、SDK整合的开发环境,简化开发环境的配置  (必须解压到没有中文的路径下)
Android Studio  Android官方推荐的开发工具,但由于刚开始接触Android,还是使用Eclipse作为开发环境
 
 
 sdk目录结构介绍
  1. tools ,  platform-tools              开发工具
  2. platforms                            开发版本
  3. samples                              官方提供的例子
  4. sources                              SDK源码
  5. docs                                 文档
 
  • Android 运行环境
Android 目前的运行环境 2种,一种是模拟器(虚拟机)、一种真机
 
AVD
Genymotion
Android 手机
CPU
PC机上模拟器的ARM CPU
PC机的x86CPU
手机硬件
运行速度 极慢
连接开发环境方式
本地连接
网络连接
本地连接
推荐 3星 4星
5星
 
 1. AVD默认保持在C盘,如果要修改AVD的路径,可以添加环境变量,Key:ANDROID_SDK_HOME Value:路径  修改AVD模拟器保存的路径
 2. ADB  Android Debug Bridge
   连接开发环境使用的是ADB工具,必须熟练掌握ADB命令
 
adb  install  APK路径
安装APP   (可以直接把APK放在 \data\app目录中)
adb  uninstall  包名
卸载APP
adb  devices
启动adb,检查设备 
adb  kill-server
停止 adb
adb  connect  IP地址
连接网络上的设备
为了方便使用 ADB指令,可以添加到环境变量path中  Key:path Value:adb路径
 
  • Android项目的目录结构
  应用的包名:主要用于区分不同的应用程序

  1. src (开发人员源码放置目录)
  2. gen(自动生成R.java,所有的资源文件都会在R.java文件中以final static 内部类的形式被注册。所以可以通过R..id,R.layout等形式来访问资源。)
  3. assets(资产目录。在这个目录中放置的资源文件,不会在R.java文件中被注册。一般程序中的音频或视频文件可以放置在这个目录下。)
  4. bin(编译后的class等文件在此目录。系自动生成  APK)
  5. libs(第三方Jar包)
  6. res(资源文件。是Android编程中最重要的目录。所有的资源都定义在这个目录下。)
  7. drawable(图片放置的目录)【android中资源的文件名[a-z0-9_.],不能数字开头
  8. layout(布局文件放置的目录)
  9. menu(菜单文件放置的目录)
  10. values(字符串、尺寸等文件放置的目录)
  11. AndroidManifest.xml (Android清单文件——是Android开发中非常重要的文件。
  • 该文件中定义了本App的版本号;
  • 适用的手机操作系统最大及最小的兼容版本号;
  • 整个项目中每写一个组件(Activity、Service、Broadcast),都需要在该清单文件中注册;
  • 运行本程序的权限等等。
res和assets目录的不同:
  1. 是否在R.java文件中被注册;
  2. res所放的文件类型是规定好的;而assets目录下放置的文件类型不限制;
  3. 访问方法不同。res中文件使用R.内部静态类.id来访问;而assets中的文件通过IO流来访问。
  4. assets 与 res/raw 目录下的资源在编译打包时,不会被编译成二进制文件,所以一般在该目录下放置 音频、视频等文件
 
 
  • Android学习方法
  1. 给自己定一个目标
  2. 多敲,多练,定期复习
  3. 一遍抄、二遍改、三遍动手实践
  4. 好记性不如烂笔头(笔记本) 
  5. 学会总结(重点、问题)
  6. 查文档、提高英语阅读能力
  7. 抽查默写关键代码
  • 什么是Activity 
 一个Activity通常就是一个单独的屏幕,它上面可以显示一些UI界面(User Interface),也可以实现与用户的交互,获得并处理用户在屏幕上的操作,比如:点击、长按等。
 Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一。 
 在一个android应用中,往往是由多个Activity组成的
  • String资源
一个字符串
使用的好处:1. 防止出现乱码  2.方便修改   3. 实现国际化
 
 
 
  • Android中主要使用Java中的技术
  • 多线性
  • 网络操作
  • IO流
  • 集合
  • 反射
  • 回调模式
  • bulid模式
  • 单例模式
 
 
  • 拓展知识  MVC开发模拟
 

   MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与《设计模式》中的观察者模式是完全一样。
      MVC好处:从用户的角度出发,用户可以根据自己的需求,选择自己合适的浏览数据的方式。比如说,对于一篇在线文档,用户可以选择以HTML网页的方式阅读,也可以选择以pdf的方式阅读。从开发者的角度,MVC把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面开发,程序员就可以把精力放在逻辑层上。而不是像以前那样,设计人员把所有的材料交给开发人员,由开发人员来实现界面。在Eclipes工具中开发Android采用了更加简单的方法,设计人员在DroidDraw中设计界面,以XML方式保存,在Eclipes中直接打开就可以看到设计人员设计的界面。 
       Android中界面部分也采用了当前比较流行的MVC框架,在Android中: 
 
  1) 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入。当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。     
  2) 控制层(Controller):Android的控制层的重任通常落在了众多的Acitvity的肩上,这句话也就暗含了不要在Acitivity中写代码,要通过Activity交割Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。
  3) 模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。

      在Android SDK中的数据绑定,也都是采用了与MVC框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是Android SDK中的Adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示Cursor中所有数据的ListActivity,其视图层就是一个ListView,将数据封装为ListAdapter,并传递给ListView,数据就在ListView中现实。