




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android 讲义第一章:初识Android1:Android发展史Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2:Android系统架构 Android的系统架构和其操作系统一样,采用了分层的架构。Android结构从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。2-1:应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2-2:应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。2-3:系统运行库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:* 系统 C 库 - 一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。* 媒体库 - 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。* Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。* LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。2-4:Liunx内核层Android 的 Linux控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等 3:Android运行原理Android 运行时由两部分组成:Android核心库和Dalvik虚拟机,其中核心库提供了大部分Java语言的核心库所能使用的绝大部分功能,而Dalvik虚拟机负责Android应用程序的运行 每个Android应用程序都运行在单独的一个Dalvik虚拟机内,因此Dalvik对于同时运行多个虚拟机做了高效的优化,因此Android系统可以很方便的实现对Android应用的隔离 Dalvik和JVM不兼容,JVM运行的是class(字节码),而Dalvik运行的是专有的dex。JVM能从Class直接读取数据运行,而Dalvik不能,Dalvik必须通过专有的DX工具把class文件编译成dex文件。Dalvik基于寄存器实现,JVM基于栈实现Android应用在安装后,运行时系统便会为其分配一个独立的存储空间,所谓的“Security Sandbox”,用于存放字节码文件、资源文件及配置文件等,同时,系统会为每一个应用程序分配唯一的ID,用以标识该应用程序的相关文件和资源,系统通过设置权限从而实现一个应用程序在一般情况下只能访问该应用程序的文件和资源。当应用程序或者它的某个组件需要运行时,系统便为其创建一个Linux进程,每个进程中实例化一个Dalvik虚拟机用以执行程序的字节码。程序运行中根据给自己设定的权限来访问相应的资源。 Java-class-dex 4:Android环境搭建4-1:下载Android SDK4-2:sdk目录结构(add-ons这里面保存着附加库,docs 所有的文档,platforms所有SDK版本文件,platform-tools保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,这里和platforms目录中tools文件夹有些重复,主要是从android 2.3开始这些工具被划分为通用了,samples 所有版本的实例,tools 作为SDK根目录下的tools文件夹,这里包含了重要的工具,system-images 模拟器文件)4-3:下载eclipse和ADT插件 4-4: android 常用命令: 4-4-1: android list target 显示当前系统中所有的android版本 Android list avd 显示当前系统中所有的模拟器 Android sdk 启动当前系统中的SDK Manager Android avd 启动当前系统中 AVD Manager Android list device 显示当前系统中所有的模拟设备 Android create avd name 名称 target 平台编号 创建模拟器 Android delete avd name 名称 删除模拟器 4-4-2: emulator avd 名称 启动模拟器 4-4-3: ddms 4-4-3: adb devices 显示当前连接的模拟器 Adb push 文件路径 copy文件到模拟器 Adb pull 文件路径 copy从模拟器copy文件 Adb instance r apk路径 adb shell cd data/app rm apk包 exit adb uninstall apk包的主包名 5:第一个Android工程第二章:Android 布局及基本控件1:界面编程与视图组件 Android的视图组件一般都是放在android.widget,android.view包或者两个包的子包中,Android的UI组件都继承View类。ViewGroup也是继承自View类,也是一个容器。ViewGroup的两个子类:layoutParams控制组件放入当前容器里面后组件本身的宽和高MarginLayoutParams 控制组件放入当前容器后和容器之间的距离(上下左右)Android 程序采用XML控制布局,可以将视图和逻辑分离在每个Activity类中都有一个onCreate方法,在这个方法里面的setContentView(R.layout.activity_main);主要是说明当前activity使用那个一个xml文件布局在xml布局文件中的android:id属性制定当前android控件的唯一标识,这个唯一标识会写入到R文件中,在Activity类中可以使用findViewById(R.id.控件的Id)得到控件控件的setLayoutParams设置当前控件在当前容器中的宽和高(注意当前控件放在什么容器中就要创建和当前容器相匹配的LayoutParams 例如当前控件如果放在线性管理器中那么就要创建new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT 否则会报错)LayoutParams.MATCH_PARENT全屏LayoutParams.WRAP_CONTENT 正好包含内容sLayoutParams.FILL_PARENT 全屏(android2.2之后推荐使用MATCH_PARENT)View类的方法: onAttachedToWindow 当把该组件放入某个窗口是触发 onDetachedFromWindow 当把该组件从某个窗口分离时触发onDraw 当绘制当前组件时触发onFinishInflate 回调方法,当应用从xml布局文件中加载该组件时并利用它来构建界面之后onKeyDownonKeyUp 当在该组件上键盘按下或释放时触发onLayout 当该组件需要分配其子组件的位置,大小时onMeasure 调用该方法来检测view组件及它所包含的子组件的大小onSizeChanged 当该组件的大小被改变的时候onTouchEvent 当发生触摸屏事件时onTrackballEvent 当发生轨迹球事件时onWindowFocusChanged 当组件得到和失去焦点时onWindowVisibilityChanged 当包含该组件的窗口的可见性发生改变的时候2:Android布局管理器为了更好的管理Android应用的用户界面,Android提供布局管理器;布局管理器的宽度和高度一般都是按照父容器的宽和高Android的布局管理器本身就是一个UI组件,所有的布局管理器都是ViewGroup的子类2-1:线性布局线性布局管理器有LinearLayout类来代表,线性布局有点类似于Swing中的FlowLayout,都是将组件一个挨一个的排列起来,LinearLayout提供横向排列和纵向排列(Android:orientation或者l.setOrientation(LinearLayout.HORIZONTAL/LinearLayout.VERTICAL)设置当前容器的排列是按照横向还是纵向)注意LinearLayout布局不会换行,也就是说如果组件的排列超出了范围,那么组件将不可见Android:gravity或者setGravity(int)方法设置当前线性布局管理器内部组件的对其方式:top,left,right,bottom,center_vertical,fiil_vertical,center,fill,center_horiaontal,fiil_horiaontal,clip_vertical,clip_horiaontal等,也可以使用多种对齐方式例如:left|center_vertical表示出现在屏幕的左边且垂直居中(多个属性值用|分割) 2-2:表格布局表格布局使用TableLayout类来代表,表格采用行和列来管理内部组件,TableLayout不需要明确的说明多少行喝多少列,会根据添加的TableRow来控制表格的行,如果直接向TabbleLayout添加组件那么就在TableLayout中直接占据一行表格布局的单元格属性 Android:collapseColumns或者setColumnCollapsed(int,boolean) 设置隐藏的列,多个用都好隔开Android:shrinkColumns或者setShrinkColumns(boolean)设置允许收缩的列,多个用逗号隔开Android:stretchColumns或者setStretchAllColumns(boolean)设置运行被拉伸的列 2-3:帧布局 帧布局使用FrameLayout来代表,FrameLayout直接继承ViewGroup类,帧布局为每一个放入容器的组件分配一个空白区域(成为一帧)采用叠加的方式,单FrameLayout不能把最底的控件移到最上层Android:foreground 或者setForegound(Drawable)设置布局管理的前景色2-4:相对布局 相对布局使用RelativeLayout来代表,内部的组件相对于兄弟组件和父容器来布局2-5:绝对布局 绝对布局使用AbsoluteLayout来代表,类似于Swing中的null布局 Android:layout_x Android:layout_y Px:对应屏幕的一个点 Dip或则dp:基于屏幕密度的抽象单位,在每英寸160点的显示器上1dip=1px; Sp:主要处理字体的大小 In:英寸,长度单位 Mm:毫米,长度单位 Pt:长度单位,1/72in3:基本控件 TextView和EditTextEditText属性:android:editable=false 是否可以编辑 已过时,推荐使用android:inputType(android:inputType 值android:inputType=none-输入普通字符android:inputType=text-输入普通字符android:inputType=textCapCharacters-输入普通字符android:inputType=textCapWords-单词首字母大小android:inputType=textCapSentences-仅第一个字母大小android:inputType=textAutoCorrect-前两个自动完成android:inputType=textAutoComplete-前两个自动完成android:inputType=textMultiLine-多行输入android:inputType=textImeMultiLine-输入法多行(不一定支持)android:inputType=textNoSuggestions-不提示android:inputType=textUri-URI格式android:inputType=textEmailAddress-电子邮件地址格式android:inputType=textEmailSubject-邮件主题格式android:inputType=textShortMessage-短消息格式android:inputType=textLongMessage-长消息格式android:inputType=textPersonName-人名格式android:inputType=textPostalAddress-邮政格式android:inputType=textPassword-密码格式android:inputType=textVisiblePassword-密码可见格式android:inputType=textWebEditText-作为网页表单的文本格式android:inputType=textFilter-文本筛选格式android:inputType=textPhonetic-拼音输入格式android:inputType=number-数字格式android:inputType=numberSigned-有符号数字格式android:inputType=numberDecimal-可以带小数点的浮点格式android:inputType=phone-拨号键盘android:inputType=datetimeandroid:inputType=date-日期键盘android:inputType=time-时间键盘)android:cursorVisible=false 是否隐藏光标android:hint=请输入数字!/设置显示在空间上的提示信息android:numeric=integer/设置只能输入整数,如果是小数则是:decimalandroid:singleLine=true/设置单行输入,一旦设置为true,则文字不会自动换行。android:password=true/设置只能输入密码android:textColor = #ff8c00/字体颜色android:textStyle=bold/字体,bold, italic, bolditalicandroid:textSize=20dip/大小android:capitalize = characters/以大写字母写android:textAlign=center/EditText没有这个属性,但TextView有,居中android:textColorHighlight=#cccccc/被选中文字的底色,默认为蓝色android:textColorHint=#ffff00/设置提示信息文字的颜色,默认为灰色android:textScaleX=1.5/控制字与字之间的间距android:typeface=monospace/字型,normal, sans, serif, monospaceandroid:background=null/背景,这里没有,指透明android:layout_weight=1/权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。android:textAppearance=?android:attr/textAppearanceLargeInverse/文字外观android:layout_gravity=center_vertical/设置控件显示的位置:默认top,这里居中显示,还有bottom TextView直接继承View,TextView是editText和Button的父类,TextView和swing中的Jlabel类似两个区别,TextView只能显示不能编辑,EditText能编辑TextView :android:autoLink=web 指定当前显示是网址 android:textSize=14pt 字体的大小 android:ellipsize=middle 在文字的中间显示省略号 android:text=string/linkText 网址 android:cuesorVisible 文本框的光标是否可见 android:editable 是否可以编辑 android:elipsize 设置文本大于文本框后是否加省略号 android:gravity 文本框对其方式 android:hint 文本的内容为空时是否显示默认文本 android:links 设置文本框默认占几行 android:passworld 设置文本框是否为密码框 Android:phoneNumber 设置文本框只能输入电话号码 Android:scrollHorizontally 设置当前文本框的内容超出时是否可以水平滚动 Android:selectAllOnFocus 文本框如果能选中内容,设置获得焦点是就选中文本 Android:signleLine 设置文本框单行显示 Button和ImageButtonButton继承TextView,IamgeButton继承Button Button和ImageButton功能都比较单一,一般就是触发一个OnClick事件,ImageButton显示图片,所以Android:Text属性没有用,使用android:src指定图片RadioButton和CheckBox都继承Button,所以Button的方法都能使用Android:checked 表示当前按钮是否选中 ToggleButton 点击以下选中再点击以下不选中 Android:textOn 表示按钮选中时显示的文本 Android:textOff 表示按钮没有选中时显示的文本 ToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) );上面是当ToggleButton按钮状态发生改变时触发的事件时钟(AnalogClock和digitalClock)DigitalClock 继承TextView,本身就是一个文本框,显示数字时钟AnalogClock继承view,重新进行绘制,显示模拟时钟Chronometer 计时器组件(继承TextView)不现实当前时间,只是显示从某个时间开始过去的时间android:format 指定计时器的格式SetBase(long) 设置其实时间setFormat(String) 设置显示格式start() 开始计时stop() 停止计时setOnChronometerTickListenter(Chronometer. OnChronometerTickListenter)为计时器绑定事件监听器,当计时器发生改变的时候触发SystemClock是一个系统获取系统时间和运行时间的类ImageView 图片框 继承View,能显示图片或者所有DrawableAndroid:adjustViewBounds 设置ImageView是否能调整自己的边界来保持所显示的图片的比例Android:scaleType 设置所显示的图片该如何缩放或者移动以适应ImageView的大小Android:src 图片对象R.id第三章:Android UI高级控件1:AutoCompleteTextView 自动完成文本框Android:completetionHint 设置出现下拉菜单的标题Android:completeThreshold 设置用户输入几个字后出现提示Android:dropDownHorizontalOffset 下拉菜单和文本框的偏移量Android:dropDownHeigt 下拉菜单的高度Android:dropDownVerticalOffset 下拉惨淡和文本框的垂直偏移量Android:dropDownWidth 下来菜单的宽度Android:popupBackground 下拉菜单的背景AutoCompleteTextView 需要一个adapter来提供提示文本2:Spinner 列表Android:propet 列表的标题Android:entries 列表的项(需要在res/values/创建一个xml文件)Xml文件内容 Java权威指南1Java权威指南2Java权威指南3 Android:entries=”array/books”DatePicker 日期控件TimePicker 时间控件 要是想获得这个控件用户设置的值,那么需要监听这两个控件的OnDateChangeLintener和OnTimeChangeLintenerProgressBar 进度条ProgressBar 属性:android:style控制进度条的样式 Android:style/Widget.Progress.Horizontal 水平进度条 Android:style/Widget.Progress.Inverse 不断跳跃旋转画面的进度条 Android:style/Widget.Progress.Large 大进度条 Android:style/Widget.Progress.Large.Inverse 不断跳跃旋转的大进度条 Android:style/Widget.Progress.Small 小进度条 Android:style/Widget.Progress.Small.Inverse不断跳跃旋转的小进度条Android:max 进度条的最大值Android:progess 进度条当前的进度Android:progessDrawAble 进度条轨迹绘制的形式(一个Layer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (康德卷) 重庆市2026届高三9月开学考联考数学试卷(含答案解析)
- 重庆朝天门码头课件
- 精准操作与安全护理:除颤仪临床使用与维护全指南
- 人教版八年级英语上册词汇(背诵版)
- 人教版2025-2026学年六年级数学开学考质量监测卷(含解答)
- 老年人防摔倒课件
- 《外贸函电与写作》课程介绍与教学大纲
- 企业员工办公室礼仪培训
- 完形填空-2023年中考英语专练(江苏宿迁市)
- 老年人常见病知识课件
- 海天注塑机全参数DOC资料全
- Test Plan Template:测试计划模板
- (完整版)三年级下册数学开学第一课ppt
- 苏教版四年级科学上册全册课件
- JJF1101-2019环境试验设备温度、湿度校准规范-(高清现行)
- 人教版新教材高中物理实验汇总及答案详解
- 中班语言《大狮子和小老鼠》课件
- TSG11-2020 锅炉安全技术规程
- 资助业务工作培训
- 《足球运动发展史》PPT课件
- IPQAM调制器操作说明书(共36页)
评论
0/150
提交评论