收藏 分享(赏)

前3章总结.doc

上传人:fcgy86390 文档编号:6313253 上传时间:2019-04-06 格式:DOC 页数:11 大小:93.50KB
下载 相关 举报
前3章总结.doc_第1页
第1页 / 共11页
前3章总结.doc_第2页
第2页 / 共11页
前3章总结.doc_第3页
第3页 / 共11页
前3章总结.doc_第4页
第4页 / 共11页
前3章总结.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、第一章主流移动操作系统主要有:Windows Mobile微软公司,不开放源代码 使用 C#和 C+作为应用的开发语言iOS苹果公司开发的移动操作系统不开源,使用 Objective-C 作为应用的开发语言Symbian曾开放过一段时间源代码,后来又封闭了使用 C+BlackBerry大部分 BlackBerry 设备都具有全键盘输入功能。该系统特别适合于常处理电话、短信和电子邮件业务的商务人群。使用 Java 作为应用的开发语言Android由被 Google 领导的开放手机联盟所维护和更新开放源代码,后来证实,只开放了部分源代码,属于半开源的系统。使用 Java 作为主要的应用开发语言在需

2、要更改底层功能时,使用 C 或 C+1、Android 之父 Andy Rubin 安迪鲁宾2、Google 领导的开放手机联盟来开发维护 Android 系统3、Android 版本更替:1.x 和 2.x 只支持 Android 手机3.x 是专门用在 Android 平板电脑上的版本4.0 开始,Android 将手机和平板电脑两种平台上的系统合二为一Android 2.2 Froyo 冻酸奶 API 8Android 2.3/2.3.3 Gingerbread 姜饼 API 9/10Android 3.0/3.1/3.2 Honeycomb 蜂巢 API 11/12/13Android

3、 4.0/4.0.3 - Ice Cream Sandwich 冰激凌三明治棒 API 14/15Android 4.1/4.2/4.3 - Jelly Bean 果冻豆 API 16/17/18Android 4.4 KitKat 奇巧巧克力棒 API 19Android 5.0-Android L API 204、Android 系统架构应用层 真正与用户交互的一层应用程序框架层 进行 Android 应用开发的基础,该层简化了组件的重用,开发人员可以直接使用其提供的组件进行快速的应用开发,也可以通过继承,实习个性化的拓展。本地库和 Android 运行环境本地库:是应用程序框架的基础,是

4、连接框架层与内核层的重要纽带。主要提供一组基于C/C+的函数库Android 运行环境:Dalvik 虚拟机,运行的是 dex 格式的文件Linux 内核层由于 Linux 内核完全使用 C 语言编写,故Android 的 Linux 内核层也全部是 C 语言编写的。5、搭建 Android 的开发环境下载安装 JDK下载安装 Eclipse下载 SDK在 Eclipse 上安装配置 ADT6、创建 HelloWorld 应用创建项目-编写代码- 创建 AVD运行应用运行方式:1、选中应用,右键-Run As Android Application2、直接点击菜单栏上的运行按钮3、Ctrl+F

5、11, (该组合键对模拟器也有效果,可以对模拟器横竖屏切换)注意:ActivityManager: Warning: Activity not started, its current task has been brought to the front在控制面板 Console 中如果打印出上边的红色字体,因为当前 Activity 已经在最前端了,需要按 Back 键(回退键)回退掉该 Activity 在重新运行。7、应用程序框架src:存放源文件的,也就是 java 文件gen:有系统自动创建的两个文件 ,开发人员不能手动修改该目录下的内容R 文件成为 资源索引文件assets:存放资

6、源文件bin:系统编译生成的临时文件libs:第三方包res:存放资源的地方 resource 简称drawable-xdpi 存放不同尺寸图片用的layout:存放布局文件menu:菜单资源values:dimens:存放尺寸、字体大小的文件strings:存放字符串的文件styles:存放样式的文件AndroidManifest.xml:清单文件proguard-project.txt:用来混淆代码的文件project.properties:工程属性文件注释:Unable to execute dex: java.nio.BufferOverflowException. Check the

7、 Eclipse log for stack trace.需要删除 Android Development Libraries 包 就 OK8、Android 常用开发调试工具adb devices 查看当前可用的手机或模拟器设备adb install apk 安装应用到移动设备 (如果应用最低 SDK 版本,高于设备上 Android 版本,则会报错:INSTALL_FAILED_OLDER_SDK)adb uninstall 包名 根据包名卸载应用注意:在 cmd 命令窗口中,要快速进入某一个目录的快捷方式: cd /d E:xxxxxxx 直接进入到 该目录下9、DDMSEmulator

8、 Control可以向模拟器发生信息、打电话、发生经纬度等等。10、Logcat 日志打印五个级别 verbose 、 debug、info、warn、errorpublic static final int VERBOSE = 2;public static final int DEBUG = 3;public static final int INFO = 4;public static final int WARN = 5;public static final int ERROR = 6;根据 Tag 进入日志过滤,可以创建根据 Tag 的日志过滤器11、Android 四大组件Act

9、ivity:用来显示 Android 的程序界面Service(服务):没有界面的后台服务BroadcastReceiver(广播接收器):在广播机制中充当广播的接受者的作用ContentProvider(内容提供者):用来在不同的应用程序之间共享数据第二章一、认识 ActivityActivity 负责 Android 应用的界面处理工作用来显示用户界面,并处理用户交互通常,一个界面对应一个 Activity每一个 Android 应用都需要有一个入口 Activity,其名称可以由开发者自行定义,但需要在AndroidManifest.xml 中配置每个 Activity 都可以启动另一个

10、或多个 Activity,而每一个被启动的 Activity 都可以向启动它的 Activity 返回一些信息二、使用 Activity1、编写类继承 Activity2、编写代码3、在清单文件中注册新的 Activity注:提示快捷键 ALT+/ 三、Activity 的生命周期第一次启动 Activity 执行的生命周期方法顺序:onCreate-onStartonResume(情况一)按 Back 键后,生命周期方法执行顺序:onPause-onStop-onDestroy(情况二)按 Home 键后,生命周期方法执行顺序:onPause-onStop 这个时候,我们在设备中启动该应用执

11、行顺序:onRestart-onStart-onResume四、Activity 互相启动时生命周期FirstActivity 启动 SecondActivity,生命周期方法执行顺序onCreate-onStart-onResume-onPause-onCreate_s-onStart_s-onResume_s(SecondActivity进入运行,这个时候如果 SecondActivity 是透明的,则 FirstActivity 就不会在执行方法,如果完全覆盖 FirstActivity,则 FirstActivity 还需要执行 onStop)我们按 Back 回退 SecondAct

12、ivity,onPause_s-onRestart-onStart-onResume-onStop_s-onDestroy_s五、Activity 的管理1、Task一个由当执行某一个共同任务时与用户产生交互的多个 Activity 组成的集合。2、Back Stack这些 Activity 按顺序放在一个栈中,这个栈就叫做“Back Stack” ,即“返回栈” 。3、返回栈与 Activity 的状态关系:当一个 Activity 被启动,它就被压入到栈中,处于栈顶位置,显示在屏幕上;当按 Back 键,栈顶的 Activity 就会出栈,一旦出栈,这个 Activity 就被销毁。Act

13、ivity 处于栈顶元素,则 Activity 处于运行态Activity 出栈,则处于终止态栈中非栈顶 Activity,处于暂停态或停止态或终止态六、启动 Activity1、直接启动调用 startActivity(intent)2、带返回值启动调用 startActivityForResult(Intent intent, int requestCode)七、Activity 的其他操作1、改变标题栏1.1、在标签中有属性 label 来设置标题1.2、在 onCreate 方法中使用 setTitle 方法设置标题2、去掉标题栏2.1、在标签中有属性, theme 来设置去掉标题栏2

14、.2、在 onCreate 方法中使用 requestWindowFeature(Window.FEATURE_NO_TITLE);该方法必须在 setContentView 方法之前调用3、不可见setVisible(false)4、透明在的标签中有属性 theme,设置其为android:theme=“android:style/Theme.Translucent.NoTitleBar“ 5、设置横竖屏在的标签中有属性 screenOrientation设置其为值 landscape 则表示该 Activity 是横屏显示设置其为值 portrait 则表示该 Activity 是竖屏显示

15、在 onCreate()方法中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)(横屏)或 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)(竖屏)注:在 xml 文件中写颜色的值,#66C8D6E4 (例如:android:background=“#66C8D6E4“)#是一个标识号,66 表示颜色透明度(00 表示完全透明,ff 表示不透明)后边六位表示就是颜色值错误处理:android.content.ActivityNo

16、tFoundException: Unable to find explicit activity class com.example.chater02_activity/com.example.chapter02_01.FirstActivity;have you declared this activity in your AndroidManifest.xml?表明找不到该 Activity,看看是否已经注册第三章一、Android UI 框架介绍Android 中所有的 UI(用户界面)元素都是使用 View 和 ViewGroup 对象建立的。1、View 是一个可以将一些信息绘制在

17、屏幕上并与用户产生交互的对象。2、ViewGroup 是一个包含多个的 View 和 ViewGroup 的容器,用来定义 UI 布局。3、Android 使用 View 类作为界面开发的超类,所有的界面开发都与 View 有关。4、Android 的 UI 开发使用层次模型来完成,一般都是在一个 ViewGroup 中嵌套多层ViewGroup,每一层中含有任意数目的 View。注意:嵌套层次不要超过 10 层,否则会大幅降低运行效率。二、Android UI 开发分类大致可分为五类:1、界面布局开发定义界面的布局 (本章要讲)2、控件开发定义单个界面元素 (本章要讲)3、AdapterVi

18、ew 与 Adapter 开发 列表显示 (第四章要讲)4、UI 组件开发对话框、通知、菜单、动作条等 (第五章要讲)5、自定义 View、图形图像和动画通过代码,自行绘制界面 (第十章要讲)三、界面布局开发1、定义 UI 布局的最常用的方法是使用 XML 布局文件。 (有时候也使用代码做界面布局开发)XML 中的每个元素都是 View 或 ViewGroup 的子孙类的对象,可以把每一个 XML 布局文件理解为一颗由 View 和 ViewGroup 的子孙类对象组成的树,树根是一个 ViewGroup 对象,所有的叶节点都是 View 对象,树的分支节点都是ViewGroup 对象。2、常

19、用的 UI 布局常用的布局有以下五种:LinearLayout线性布局RelativeLayout相对布局FrameLayout帧布局TableLayout表格布局AbsoluteLayout绝对布局4.0 版本新特性:GridLayout网格布局(第 11 章中讲)四、LinearLayout-线性布局1、android:layout_width 和 android:layout_height 属性,前者表示该控件的宽度,后者表示高度。可取值如下:wrap_content:表示控件占用自身大小的空间match_parent:表示控件占满其父控件,在早期版本中叫做 fill_parentXXd

20、p:占用 XX 个设备独立像素,很常用XXsp:常用在字体大小的标识中,也表示占用的像素XXpx:占用 XX 个像素,不利于屏幕适配,一般不用2、使用 android:orientation=“vertical”属性可以指定为垂直,使用android:orientation=“horizontal”属性可以指定为水平。默认是水平。3、android:layout_gravity:用于设置该 View 在其父 View 中的对齐方式。android:gravity:用于设置该 View 内部内容的对齐方式。比如一个 Button 在一个LinearLayout 中,可以使用 Button 的该属

21、性设置这个 Button 在这个 LinearLayout 中的位置。注:如果 LinearLayout 布局是垂直方向,则 android:layout_gravity 中要居中对齐,则只会在水平方向上对齐,使用 bottom 对齐方式也是无效的。反之亦然。4、android:gravity:用于设置该 View 内部内容的对齐方式。比如可以使用一个 Button 的该属性设置其上的文本在这个 Button 中的位置。注:要使用这个 gravity 属性,确定 View 除了显示的内容外,还有有剩余空间,设置对齐方式才会有效。5、控件可以使用 android:layout_marginXXX

22、(XXX:Left、 Top、Right、Bottom)属性设置该控件距离左、上、右、下边界的间距。该属性,也就是设置“外间距” 。就是一个 View 距离其最近控件边界的间距。6、控件可以使用 android:layout_paddingXXX(XXX:Left、Top、Right 、Bottom)属性设置该控件内容距离控件左、上、右、下边界的间距。该属性,也就是设置“内间距 “。就是一个 View 的内容距离 View 边界的距离。7、LinearLayout 特有的属性android:layout_weight ,它表示比重的意思,可实现百分比布局。如果控件为“match_parent”

23、 ,则 layout_weight 的值与占用比重是反相关的,其值越大,它占用的比重越小。如果控件为“wrap_content ”,则对比重的判断会变为正相关,即其值越小,占用的空间越少。但是这种情况下,有时候不会严格地按照比重来显示,如果某个 View 中的内容过多,就会占用过多的空间。使用这个属性,是很耗费资源的,尽量不要多用。五、RelativeLayout-相对布局RelativeLayout 中往往需要定义每一个控件的资源 ID,1、layout_toLeftOf、layout_toRightOf、 layout_below、 layout_above 表示相对位置的属性在哪个 Vi

24、ew 的左边 在哪个 View 的右边 在哪个 View 的下边 在哪个 View 的上边注:注意在 xml 文件中引用 ID 资源格式:id/ID 的引用名2、layout_alignXXX 表示对齐方式如:layout_alignParentBottom 表示与父类的底部对齐layout_centerInParent、layout_centerHorizontal 、layout_centerVertical 是相对布局的居中对齐属性3、RelativeLayout 支持的常用 XML 属性XML 属性 描述android:gravity 用于设置布局管理器中各子组件的对齐方式androi

25、d:ignoreGravity 用于指定哪个组件不受 gravity 属性的影响android:layout_above 其属性值为其它 UI 组件的 id 属性,用于指定该组件位于哪个组件的上方layout_alignBottom 其属性值为其它 UI 组件的 id 属性,用于指定该组件位于哪个组件的下边界对齐android:layout_alignLeft 其属性值为其它 UI 组件的 id 属性,用于指定该组件位于哪个组件的左边界对齐android:layout_alignParentBottom其属性值为 boolean 值,用于指定该组件是否与布局管理器低端对齐android:lay

26、out_alignParentLeft 其属性值为 boolean 值,用于指定该组件是否与布局管理器左边对齐android:layout_alignParentRight 其属性值为 boolean 值,用于指定该组件是否与布局管理器右边对齐android:layout_alignParentTop 其属性值为 boolean 值,用于指定该组件是否与布局管理器顶端对齐android:layout_alignRight 其属性值为其它 UI 组件的 id 属性,用于指定该组件与哪个组件的右边界对齐android:layout_alignTop 其属性值为其它 UI 组件的 id 属性,用于指

27、定该组件与哪个组件的上边界对齐android:layout_below 其属性值为其它 UI 组件的 id 属性,用于指定该组件位于哪个组件的下方android:layout_centerHorizontal 其属性值为 boolean 值,用于指定该组件是否与布局管理器水平居中的位置android:layout_centerInparent 其属性值为 boolean 值,用于指定该组件是否与布局管理器的中央位置android:layout_centerVertical 其属性值为 boolean 值,用于指定该组件是否与布局管理器垂直居中的位置android:layout_toLeftOf

28、 其属性值为其它 UI 组件的 id 属性,用于指定该组件与哪个组件的左侧android:layout_toRightOf 其属性值为其它 UI 组件的 id 属性,用于指定该组件与哪个组件的右侧六、TableLayout 表格布局TableLayout 属于行和列形式的管理控件,每行为一个 TableRow 对象,也可以是一个 View对象。在 TableRow 中还可以继续添加其他的控件,每添加一个子控件就成为一列。TableLayout不会生成边框。1、三个重要属性collapseColumns:设置指定的列为 collapse,如果一列被标示为 collapse,该列会被隐藏。shri

29、nkColumns:设置指定的列为 shrinkable,如果一列被标示为 shrinkable,列的宽度进行收缩,自适应父容器的大小。stretchColumns:设置指定的列为 stretchable,如果一列被标示为 stretchable ,该列会被拉伸,填充满表格的空白区域。七、FrameLayout帧布局帧布局中的每一个组件都代表一个画面默认以屏幕左上角作为(0, 0)坐标,按组件定义的先后顺序依次逐屏显示,后面出现的会覆盖前面的画面。用该布局可以实现动画效果。1、对齐方式属性居中对齐属性有:layout_gravity: 该属性的 center 可以让 View 处于父布局的中央

30、八、AbsoluteLayout绝对布局AbsoluteLayout,又可以叫做坐标布局,可以直接指定子元素的绝对位置1、使用 android:layout_x 属性来确定 X 坐标,以左上角为顶点。使用 android:layout_y 属性确定 Y 坐标,以左上角为顶点。如果子元素不设置 layout_x 和 layout_y,那么它们的默认值是 0,会出现在左上角。2、由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差,不推荐使用九、TextView 支持的常用 XML 属性XML 属性 描述android:autoLink 用于指定是否将指定格式的文本转换为可单击的超级链接形式,

31、其属性值有 none、web、email、map 或 allandroid:drawableButton 用于在文本框内文本的底端绘制指定图像,该图像可以是放在res/drawable 目录下的图片,通过“drawable/文件名(不包括文件的扩展名) ”设置android:drawableLeft 用于在文本框内文本的左侧绘制指定图像,该图像可以是放在res/drawable 目录下的图片,通过“drawable/文件名(不包括文件的扩展名) ”设置android:drawableRight 用于在文本框内文本的右侧绘制指定图像,该图像可以是放在res/drawable 目录下的图片,通过“

32、drawable/文件名(不包括文件的扩展名) ”设置android:drawableTop 用于在文本框内文本的顶端绘制指定图像,该图像可以是放在res/drawable 目录下的图片,通过“drawable/文件名(不包括文件的扩展名) ”设置android:gravity 用于设置文本框内文本的对齐方式,可选值有top、button、left、right、center_vertical、fill_vertical、center_horizontal、fill_hotizontal、center、fill、clip_vertical、clip_horizontal等。这些属性值也可以同时指

33、定,个属性值之间用竖线隔开。例如要指定组件靠右下角对齐,可以使用属性值 right|buttonandroid:hint 用于设置当文本框中文本内容为空时,默认显示的提示文本android:inputType 用于指定当前文本框显示内容的文本类型,其可选值有textPassword、textEmailAddress 、phone 和 data 等,可以同时指定多个,使用“|”进行分隔android:singleLine 用于指定当前文本框是否为单行模式,其属性值为 true 或 false,为 true 表示该文本框不会换行,当文本框中的文本超过一行时,其超出的部分将被省略,同时在结尾处添加“

34、.”android:text 用于指定该文本中显示的文本内容,可以直接在该属性值中指定,也可以通过在 string.xml 文件中定义文本常量的方式指定android:textColor 用于指定当前文本框内文本的颜色,其属性值可以是#rgb、#argb、#aarrggbb 格式指定的颜色值android:textSize 用于设置文本内文本的字体大小,其属性为代表大小的数值加上单位组成,其单位可以是 px、pt 、sp 和 in 等android:width 用于指定文本的宽度,以像素为单位android:height 用于指定文本的高度,以像素为单位十、其它组件1.进度条(Progress

35、Bar )水瓶进度条 style=“?android:attr/progressBarStyleHorizontal“pb = (ProgressBar) findViewById(R.id.pbar);pb.setMax(100);new Thread(new Runnable() Overridepublic void run() while (i100) try pb.setProgress(i+);Thread.sleep(100); catch (InterruptedException e) e.printStackTrace();).start();2.星级评分条(RatingB

36、ar)rb = (RatingBar) findViewById(R.id.rbar);rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener() public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) if(fromUser)Toast.makeText(getApplicationContext(),rating, 3000).show(););3.滚动视图(ScrollView )滚动视图内只能有一个 view4.拖动

37、条(SeekBar)设置拖动条的值:android:max=“100“sb = (SeekBar) findViewById(R.id.sbar);sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() public void onStopTrackingTouch(SeekBar seekBar) public void onStartTrackingTouch(SeekBar seekBar) public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) if(fromUser)Toast.makeText(getApplicationContext(), progress, 3000).show(););

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报