Android-复习重点
android核心知识点笔记
![android核心知识点笔记](https://img.taocdn.com/s3/m/0e90f8c370fe910ef12d2af90242a8956aecaa6b.png)
android核心知识点笔记Android核心知识点笔记一、Android基础知识1. Android的发展历程- Android是由Andy Rubin创建的一个开放源代码的移动操作系统,2003年创建,2005年被Google收购,2008年首次推出。
- Android的发展经历了不断的版本迭代,包括Cupcake、Donut、Eclair、Froyo、Gingerbread、Honeycomb、Ice Cream Sandwich、Jelly Bean、KitKat、Lollipop、Marshmallow、Nougat、Oreo、Pie等。
- Android的版本迭代主要包括增加新功能、优化性能、改进用户界面等方面的改动。
2. Android应用的开发流程- Android应用的开发包括需求分析、设计界面、编写代码、调试、测试和发布等阶段。
- 需求分析阶段是确定应用的功能和界面设计的重要阶段,可以根据用户需求绘制原型图、进行用户调研等。
- 设计界面阶段包括绘制应用的界面布局、设计图片资源等。
- 编写代码阶段是根据需求和设计完成应用的逻辑和功能代码的编写,可以使用Java语言和Android SDK提供的API。
- 调试阶段是通过模拟器或真机进行应用的调试和测试,可以检查代码逻辑和界面的运行情况。
- 测试阶段是进行全面的功能测试、性能测试和兼容性测试,确保应用在各种设备上都能正常运行,并修复可能存在的Bug。
- 发布阶段是将应用打包成APK文件并上传到应用商店,供用户下载和安装使用。
3. Android应用的架构- Android应用的架构包括四个主要组件:Activity、Service、Broadcast Receiver和Content Provider。
- Activity是Android应用的界面显示和用户交互的主要组件。
- Service是一个可以在后台运行的组件,可以执行一些长时间运行的任务,如音乐播放、网络下载等。
安卓期末考试知识总结
![安卓期末考试知识总结](https://img.taocdn.com/s3/m/d6e7252e2379168884868762caaedd3383c4b527.png)
安卓期末考试知识总结第一章:Android基础入门习题总结1.Android系统采用分层架构,由高到低分为4层,主要为:应用程序层、应用程序框架层、核心类库、Linux内核2.在Android项目程序开发完成后中,必须__打包成_正式的Android安装文件,才能发布到互联网上让用户下载使用。
3.Android 工程中src目录下存放_java__文件重点知识1.应用层:应用层是核心应用程序的集合。
手机上所有的应用都属于这一层,程序,短信程序。
2.应用程序框架层:应用程序框架层主要提供构建应用程序时用到的各种API,例如:活动管理器、通知管理器、内容提供者3.核心类库:核心类库中包含了系统库及Android运行环境。
(1)系统库主要通过c/c++库为Android系统提供主要的特性支持(2)Android运行时库主要提供一些核心库,允许开发者使用java语言来编写Android应用程序4.Linux内核:为Android·设备的各种硬件提供底层的驱动,如显示驱动、音频驱动、蓝牙驱动、电源管理驱动Android工程中的assets目录主要存放一些文件资源,这些文件会被原封不动的打包到APK文件中更为细分的5层架构:应用程序层、应用程序框架层、核心类库、硬件抽象层 (HAL)、Linux内核硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。
HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。
当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
第二章:Android常见桌面布局&第三章:Android常见界面控件知识总结1.Android应用的界面是由View 对象和 ViewGroup 对象构建而成的。
ViewGroup继承自View,ViewGroup作为容器盛装界面中的其他控件Android应用的每个界面的根元素必须有且只有一个ViewGroup容器Android常见布局和特点:Android中常见的五种布局:相对布局(RelativeLayout)、线性布局(LinearLayout)、表格布局(TableLayout)、帧布局(FrameLayout)、约束布局(ConstraintLayout)1.相对布局(RelativeLayout):相对布局是一种基于相对位置的布局方式,可以通过设置组件相对于其他组件或父容器的位置来实现布局。
android考试复习题
![android考试复习题](https://img.taocdn.com/s3/m/6c207c6ce3bd960590c69ec3d5bbfd0a7856d55c.png)
android考试复习题Android考试复习题Android是目前最流行的移动操作系统之一,它的广泛应用使得对Android开发的需求越来越大。
如果你正在准备Android考试,那么掌握一些常见的复习题是非常重要的。
本文将为你提供一些Android考试复习题,帮助你巩固知识并提高你的准备水平。
一、基础知识1. Android是哪个公司开发的?2. 什么是Android SDK?3. Android应用的基本组成部分是什么?4. 什么是Activity?5. 什么是Intent?6. 什么是布局文件?二、界面设计1. 请列举几种常见的布局文件类型。
2. LinearLayout和RelativeLayout有什么区别?3. 什么是ListView?4. 什么是RecyclerView?5. 什么是Fragment?三、数据存储1. 请列举几种常见的数据存储方式。
2. 什么是Shared Preferences?3. 什么是SQLite数据库?4. 什么是Content Provider?四、网络通信1. 请列举几种常见的网络通信方式。
2. 什么是HTTP请求?3. 什么是JSON?4. 请简要说明如何在Android应用中进行网络请求。
五、多媒体处理1. 什么是MediaPlayer?2. 什么是Camera API?3. 什么是SurfaceView?4. 请简要说明如何在Android应用中播放音频文件。
六、性能优化1. 什么是ANR?2. 请列举几种常见的性能优化方法。
3. 什么是内存泄漏?4. 请简要说明如何进行内存优化。
七、安全性1. 什么是ProGuard?2. 什么是混淆?3. 什么是HTTPS?4. 请简要说明如何保护Android应用的安全性。
八、其他1. 什么是Gradle?2. 什么是Android Studio?3. 请简要说明如何创建一个新的Android项目。
4. 请简要说明如何在Android应用中添加第三方库。
Android复习重点
![Android复习重点](https://img.taocdn.com/s3/m/56069a56a8956bec0875e311.png)
1、Android四大组件是什么?2、Activity生命周期方法有哪些?不要与service的生命周期方法记混淆3、Back键与home键对Activity的影响有什么不同,哪个会销毁页面?4、Android应用程序的目录结构的用途,assests与res文件夹的区别5、Android中gen文件夹中最重要的是R.java文件,它是系统自动生成的,不能手动修改。
6、AndroidManifest.xml文件中各类元素,如<manifest>与<application>,同层次的元素位置,元素属性是否必须设置等。
7、Src values drawable layout 文件夹放什么8、常用xml属性及属性值的意思,如android:layout_width layout_height android:text android:hint android:autoText android:textSize wrap_content fill_parent9、从当前Activity启动另一个Activity,可以使用哪两种方法?有什么区别?10、Intent 的作用:实现页面跳转,连接四大组件的桥梁11、ContentProvider的作用:实现应用程序之间的数据共享12、退出activity的方法(finish onstop 抛出异常强制退出)13、AlertDialog怎样创建?(new AlertDialog.builder),怎样显示?(show),设置“确认”按钮的方法setPositivebutton 设置“取消”按钮的方法setNegativeButton14、Service生命周期的方法:onCreate onStart ,第一次启动时会执行什么,若已经启动了,再次启动Service会执行哪些方法15、Service的两种启动方式分别对应哪两个方法?停止呢?16、关于ContentValues的key-value,key可以是什么类型,value又可以是什么类型17、Android界面元素大小的度量单位有px(不建议用,但可以用)sp(文字)dp(长度)18、广播的注册方式有动态注册和静态注册,其中动态注册一般在生命周期的对应方法中实现,如onCreat与onDestory onResume与onPause19、广播的xml静态注册在AndroidManifest.xml文件里,<receiver>标签里都有什么?看AndroidManifest.xml文件记清楚20、Sqlite数据库:SqliteDatabase作用SqliteopenHelper的作用SqliteopenHelper的onCreate及onUpgrade方法调用的时机21、SharePreferences的作用(保存配置信息),格式为xml,存键值对,存储在哪儿(data/data/包名/shared_prefs)22、BaseAdapter的内部常用方法的作用(getview getcount),Listview的Item布局设定,事件监听都在哪里实现?google推荐借助什么优化ListView?23、Android常用的适配器有哪些?24、ArrayAdapter与SimpleAdapter有什么区别?25、AsyncTask的常用方法有哪几个?每个方法的负责的主要工作是什么?26、Handler主要是用于解决什么问题的?(子线程与主线程通讯)27、Handler发送消息用什么方法?处理消息呢?28、Message里面的what主要作用是什么?29、Android模拟器连接本机Web站点的地址不再是localhost,而是10.0.2.230、使用SAX解析XML文件的优点是什么31、JSON数据格式里常用的两个对象是JSONObject JSONArray简答题1、Android常用布局2、Android生命周期方法3、Android平台的数据存储方式4、广播的注册方式有几种,各有什么特点5、Service的两种启动方式是什么?有什么区别?6、Android应用程序工程的主要目录结构有哪些,分别是什么作用?7、什么是ANR?哪些情况会引起ANR?8、Android菜单有几种?分别怎么呼出?。
android中级知识点
![android中级知识点](https://img.taocdn.com/s3/m/9624098ea0c7aa00b52acfc789eb172ded6399cc.png)
android中级知识点一、Activity的生命周期:1. onCreate():Activity被创建时调用,可以进行一些初始化操作。
2. onStart():Activity可见时调用。
3. onResume():Activity可见且可以与用户进行交互时调用。
4. onPause():Activity即将失去焦点但仍可见时调用,常用于保存数据或停止一些耗时操作。
5. onStop():Activity不再可见时调用,常用于释放一些资源。
6. onRestart():Activity重新启动时调用。
7. onDestroy():Activity被销毁时调用,常用于释放一些资源和取消注册。
二、Fragment的使用:1. Fragment是Activity内部的页面组件,可以包含在一个Activity中,并拥有自己的生命周期。
2. Fragment管理自己的视图和用户交互,可以在Activity运行过程中进行动态的添加、移除、替换等操作。
3. Fragment可以通过FragmentManager来进行管理,FragmentManager负责管理Fragment的添加、移除、替换等操作。
4. 在布局文件中使用<fragment>标签可以直接在布局中添加Fragment。
三、UI布局1. XML布局文件:Android使用XML文件定义UI布局,可以使用LinearLayout、RelativeLayout、FrameLayout等布局管理器来进行页面布局。
2. View控件:Android提供了各种各样的View控件,如TextView、Button、ImageView等,通过在布局文件中添加这些控件来构建UI界面。
3. 布局管理器:Android提供了各种布局管理器来帮助控制View的位置和大小,如LinearLayout、RelativeLayout、FrameLayout等。
android java知识点总结
![android java知识点总结](https://img.taocdn.com/s3/m/046e0aa70875f46527d3240c844769eae109a316.png)
android java知识点总结一、Android基础1.1 Android系统架构Android系统由四个层级组成:Linux内核、系统服务、应用框架和应用程序。
Linux内核提供系统底层支持,系统服务提供核心服务,应用框架提供应用程序开发所需的API和工具,应用程序则是用户直接与系统交互的部分。
1.2 Android应用生命周期Android应用有四种生命周期状态:运行、暂停、停止和销毁。
应用在这几种状态之间切换时,可以对其进行相应的操作,例如保存数据、释放资源等。
1.3 AndroidManifest.xml文件AndroidManifest.xml文件是Android应用的配置文件,它包含应用的各种信息,例如应用名称、图标、权限要求、组件声明等。
它是Android应用的入口文件,Android系统会根据这个文件来启动应用。
1.4 Android布局文件Android应用的界面布局通常是通过XML文件来描述的,此类文件称为布局文件。
Android提供了多种布局方式,包括线性布局、相对布局、表格布局等。
1.5 Android资源文件Android应用的资源文件包括图片、字符串、颜色等,它们通常存储在res目录下。
在Java代码中可以通过R类引用这些资源文件,并在应用中使用。
1.6 Android事件处理Android应用中的事件(如点击事件、长按事件)可以通过监听器来处理。
通过设置监听器,可以在特定的事件发生时执行相应的操作。
二、Java语言基础2.1 Java基本语法Java是一种面向对象的编程语言,它的基本语法包括变量、数据类型、运算符、流程控制语句等。
熟悉Java语法对于Android开发是非常重要的,因为Android应用是使用Java 语言编写的。
2.2 Java集合框架Java集合框架提供了一系列的接口和类,用于存储和操作对象。
Android应用中经常需要使用集合框架来处理数据,如List、Map、Set等。
Android课程知识点总结
![Android课程知识点总结](https://img.taocdn.com/s3/m/af7711892dc58bd63186bceb19e8b8f67c1cef3b.png)
Android课程知识点总结本文主要是对Android课程的知识点进行总结,包括Android开发的基础知识、核心技术和最佳实践。
通过学习本文,读者可以掌握Android开发的基础知识和技能,并在实际项目中加以应用。
本文所包含的知识点涉及Android开发的各个方面,包括Android应用开发、Android系统架构、Android用户界面设计、Android网络编程等。
通过对这些知识点的系统学习,读者可以深入了解Android开发的核心技术和最佳实践,提升自己的Android开发水平。
一、Android基础知识1. Android系统架构Android系统架构包括四层:Linux内核层、系统库层、应用框架层和应用层。
Linux内核层提供了Android系统的核心功能,包括进程管理、内存管理、驱动程序等。
系统库层提供了Android系统的核心库,包括C/C++标准库、媒体库、Surface Manager等。
应用框架层提供了Android系统的核心服务和API,包括Activity Manager、Package Manager、Notification Manager等。
应用层包括了Android系统的核心应用,如电话、短信、联系人、浏览器等。
2. Android应用架构Android应用架构包括四个组件:Activity、Service、Content Provider和Broadcast Receiver。
Activity是Android应用的用户界面,用于与用户进行交互。
Service是Android应用的后台服务,用于在后台执行长时间运行的任务。
Content Provider是Android应用的数据提供者,用于对外提供数据。
Broadcast Receiver是Android应用的广播接收者,用于接收系统广播和应用广播。
3. Android应用开发工具Android应用开发工具包括Android Studio、Eclipse和IntelliJ IDEA。
android基础知识题库100道及答案(完整版)
![android基础知识题库100道及答案(完整版)](https://img.taocdn.com/s3/m/dc74733b1fd9ad51f01dc281e53a580216fc50ce.png)
android基础知识题库100道及答案(完整版)1. Android 操作系统基于以下哪种内核?A. LinuxB. WindowsC. UnixD. Mac OS答案:A2. Android 应用程序主要使用哪种编程语言?A. JavaB. C++C. PythonD. Ruby答案:A3. AndroidManifest.xml 文件的作用是什么?A. 存储应用的资源B. 定义应用的组件和权限C. 保存应用的数据D. 处理应用的逻辑答案:B4. 在Android 中,用于存储少量键值对数据的存储方式是?A. SharedPreferencesB. SQLiteC. ContentProviderD. File答案:A5. Android 中的Activity 生命周期方法中,在Activity 可见但不可交互时调用的是?A. onStart()B. onResume()C. onPause()D. onStop()答案:C6. 以下哪个不是Android 中的布局管理器?A. LinearLayoutB. RelativeLayoutC. AbsoluteLayoutD. GridLayout答案:C7. Android 中用于在后台执行耗时操作的是?A. AsyncTaskB. HandlerC. ThreadD. Service答案:A8. 以下哪个不是Android 中的广播类型?A. 普通广播B. 有序广播C. 无序广播D. 本地广播答案:C9. Android 中用于发送短信的权限是?A. android.permission.SEND_SMSB. android.permission.RECEIVE_SMSC. android.permission.READ_SMSD. android.permission.WRITE_SMS答案:A10. 在Android 中,用于获取网络数据的类是?A. HttpURLConnectionB. SocketC. ServerSocketD. DatagramSocket答案:A11. Android 中用于实现页面跳转的类是?A. IntentB. BundleC. ContextD. ActivityManager答案:A12. 以下哪个不是Android 中的存储方式?A. 内部存储B. 外部存储C. 网络存储D. 数据库存储答案:C13. Android 中用于显示图片的控件是?A. ImageViewB. TextViewC. ButtonD. EditText答案:A14. 以下哪个不是Android 中的触摸事件?A. onClickB. onTouchC. onLongClickD. onScroll答案:A15. Android 中用于创建菜单的方法是?A. onCreateOptionsMenuB. onPrepareOptionsMenuC. onOptionsItemSelectedD. onContextItemSelected答案:A16. 以下哪个不是Android 中的动画类型?A. 帧动画B. 补间动画C. 属性动画D. 3D 动画答案:D17. Android 中用于获取系统服务的类是?A. SystemServiceB. ContextC. ServiceManagerD. ActivityManager答案:B18. 以下哪个不是Android 中的传感器类型?A. 加速度传感器B. 陀螺仪传感器C. 光线传感器D. 压力传感器答案:D19. Android 中用于实现碎片(Fragment)的类是?A. FragmentB. FragmentManagerC. FragmentTransactionD. FragmentActivity答案:A20. 以下哪个不是Android 中的进程类型?A. 前台进程B. 后台进程C. 空进程D. 服务进程答案:C21. Android 中用于处理音频的类是?A. AudioRecordB. AudioTrackC. MediaPlayerD. SoundPool答案:C22. 以下哪个不是Android 中的图形绘制方式?A. CanvasB. OpenGL ESC. SVGD. Bitmap答案:C23. Android 中用于实现定位功能的类是?A. LocationManagerB. LocationProviderC. GeocoderD. MapView答案:A24. 以下哪个不是Android 中的通知类型?A. 普通通知B. 大视图通知C. 悬挂式通知D. 弹窗通知答案:D25. Android 中用于实现自定义视图的方法是?A. onDrawB. onMeasureC. onLayoutD. onCreate答案:A26. 以下哪个不是Android 中的数据传递方式?A. Intent 传递B. 共享文件传递C. 数据库传递D. 网络传递答案:C27. Android 中用于实现多线程下载的类是?A. DownloadManagerB. AsyncTaskC. ThreadPoolExecutorD. HttpClient答案:A28. 以下哪个不是Android 中的网络请求方式?A. GETB. POSTC. PUTD. DELETE答案:C29. Android 中用于实现蓝牙通信的类是?A. BluetoothAdapterB. BluetoothSocketC. BluetoothServerSocketD. BluetoothDevice答案:A30. 以下哪个不是Android 中的权限组?A. 危险权限组B. 正常权限组C. 特殊权限组D. 签名权限组答案:D31. Android 中用于实现语音识别的类是?A. SpeechRecognizerB. TextToSpeechC. AudioManagerD. Vibrator答案:A32. 以下哪个不是Android 中的视图组(ViewGroup)?A. FrameLayoutB. LinearLayoutC. RelativeLayoutD. ListView答案:D33. Android 中用于实现推送通知的服务是?A. GCMB. FCMC. C2DMD. MQTT答案:B34. 以下哪个不是Android 中的数据存储格式?A. JSONB. XMLC. CSVD. YAML答案:D35. Android 中用于实现进程间通信的方式是?A. IntentB. MessengerC. AIDLD. ContentProvider答案:C36. 以下哪个不是Android 中的UI 线程操作限制?A. 网络操作B. 耗时计算C. 文件读写D. 界面更新答案:D37. Android 中用于实现图片加载的开源框架是?A. PicassoB. GlideC. FrescoD. Volley答案:B38. 以下哪个不是Android 中的资源类型?A. 字符串资源C. 布局资源D. 服务资源答案:D39. Android 中用于实现数据库升级的方法是?A. onUpgradeB. onCreateC. onOpenD. onDowngrade答案:A40. 以下哪个不是Android 中的意图过滤器(IntentFilter)的动作?A. ACTION_CALLB. ACTION_EDITC. ACTION_SENDD. ACTION_DELETE答案:D41. Android 中用于实现视频播放的类是?A. VideoViewB. MediaControllerC. SurfaceViewD. TextureView答案:A42. 以下哪个不是Android 中的布局属性?A. layout_widthB. layout_heightC. paddingD. margin答案:C43. Android 中用于实现应用内购买的服务是?A. In-app BillingB. Google Play BillingC. Amazon Appstore BillingD. Apple App Store Billing答案:B44. 以下哪个不是Android 中的触摸模式?A. 单点触摸B. 多点触摸C. 滑动触摸答案:C45. Android 中用于实现动画插值器(Interpolator)的类是?A. AccelerateInterpolatorB. DecelerateInterpolatorC. LinearInterpolatorD. CycleInterpolator答案:A46. 以下哪个不是Android 中的消息机制?A. HandlerB. LooperC. MessageQueueD. ThreadPool答案:D47. Android 中用于实现文件上传的类是?A. HttpPostB. MultipartEntityC. FileUploadD. HttpPut答案:B48. 以下哪个不是Android 中的屏幕方向?A. 竖屏B. 横屏C. 自动旋转D. 反向横屏答案:D49. Android 中用于实现手势识别的类是?A. GestureDetectorB. ScaleGestureDetectorC. OnGestureListenerD. OnDoubleTapListener答案:A50. 以下哪个不是Android 中的日志级别?A. VERBOSEB. DEBUGC. INFOD. WARNING答案:C51. Android 中用于实现应用签名的工具是?A. KeytoolB. JarsignerC. ApktoolD. Dex2jar答案:B52. 以下哪个不是Android 中的进程优先级?A. 前台优先级B. 可见优先级C. 服务优先级D. 后台优先级答案:C53. Android 中用于实现地图功能的类是?A. MapViewB. GoogleMapC. LocationViewD. MapFragment答案:B54. 以下哪个不是Android 中的图片压缩格式?A. JPEGB. PNGC. GIFD. BMP答案:D55. Android 中用于实现应用内搜索的类是?A. SearchViewB. SearchManagerC. ContentSearcherD. QueryBuilder答案:B56. 以下哪个不是Android 中的传感器事件类型?A. SENSOR_TYPE_ACCELEROMETERB. SENSOR_TYPE_GYROSCOPEC. SENSOR_TYPE_LIGHTD. SENSOR_TYPE_TEMPERATURE答案:D57. Android 中用于实现应用更新的方式是?A. Google Play 自动更新B. 应用内检测更新C. 手动下载更新D. 以上都是答案:D58. 以下哪个不是Android 中的资源目录?A. drawableB. layoutC. valuesD. assets答案:D59. Android 中用于实现进程保活的方法是?A. 前台服务B. 广播接收器C. 工作线程D. 以上都是答案:D60. 以下哪个不是Android 中的动画帧间隔时间单位?A. 毫秒B. 秒C. 微秒D. 纳秒答案:D61. Android 中用于实现应用主题的方式是?A. 在styles.xml 中定义B. 在AndroidManifest.xml 中指定C. 在代码中设置D. 以上都是答案:D62. 以下哪个不是Android 中的布局测量模式?A. EXACTLYB. AT_MOSTC. UNSPECIFIEDD. AUTO答案:D63. Android 中用于实现音频录制的类是?A. MediaRecorderB. AudioRecordC. SoundRecorderD. VoiceRecorder答案:A64. 以下哪个不是Android 中的视图状态保存方法?A. onSaveInstanceStateB. onRestoreInstanceStateC. onPauseD. onResume答案:C65. Android 中用于实现应用国际化的方式是?A. 使用资源文件B. 在代码中判断语言C. 使用第三方库D. 以上都是答案:D66. 以下哪个不是Android 中的触摸事件分发机制?A. dispatchTouchEventB. onInterceptTouchEventC. onTouchEventD. onTouchDispatchEvent答案:D67. Android 中用于实现应用加密的方式是?A. 对称加密B. 非对称加密C. 哈希加密D. 以上都是答案:D68. 以下哪个不是Android 中的应用组件?A. ActivityB. ServiceC. BroadcastReceiverD. Adapter答案:D69. Android 中用于实现应用权限管理的类是?A. PermissionManagerB. PermissionCheckerC. PackageManagerD. ActivityManager答案:C70. 以下哪个不是Android 中的应用启动模式?A. standardB. singleTopC. singleTaskD. singleInstance答案:A71. Android 中用于实现应用崩溃捕获的工具是?A. ACRAB. BuglyC. CrashlyticsD. 以上都是答案:D72. 以下哪个不是Android 中的数据绑定方式?A. 双向数据绑定B. 单向数据绑定C. 无数据绑定D. 自动数据绑定答案:D73. Android 中用于实现应用性能优化的工具是?A. Android ProfilerB. LeakCanaryC. SystraceD. 以上都是答案:D74. 以下哪个不是Android 中的应用架构模式?A. MVPB. MVVMC. MVCD. MVVMC答案:D75. Android 中用于实现应用热修复的技术是?A. DexposedB. AndFixC. TinkerD. 以上都是答案:D76. 以下哪个不是Android 中的应用混淆工具?A. ProGuardB. R8C. DexGuardD.混淆不是必需的答案:D77. Android 中用于实现应用签名的密钥类型是?A. 调试密钥B. 发布密钥C. 临时密钥D. 以上都是答案:D78. 以下哪个不是Android 中的应用测试类型?A. 单元测试B. 集成测试C. 系统测试D. 压力测试答案:D79. Android 中用于实现应用多语言支持的资源文件后缀是?A. xmlB. stringsC. valuesD. 语言代码答案:D80. 以下哪个不是Android 中的应用资源目录?A. mipmapB. rawC. animD. class答案:D81. Android 中用于实现应用数据备份的类是?A. BackupManagerB. RestoreManagerC. DataManagerD. FileManager答案:A82. 以下哪个不是Android 中的应用权限分类?A. 危险权限C. 特殊权限D. 自定义权限答案:C83. Android 中用于实现应用动态权限申请的方法是?A. requestPermissionsB. checkSelfPermissionC. shouldShowRequestPermissionRationaleD. 以上都是答案:D84. 以下哪个不是Android 中的应用缓存策略?A. 内存缓存B. 磁盘缓存C. 网络缓存D. 无缓存答案:C85. Android 中用于实现应用数据加密存储的类是?A. CipherB. SecretKeyC. EncryptedFileD. EncryptedSharedPreferences答案:D86. 以下哪个不是Android 中的应用版本控制方式?A. 版本号B. 版本名C. 构建号D. 发布日期答案:D87. Android 中用于实现应用日志输出到文件的类是?A. FileWriterB. BufferedWriterC. PrintWriterD. LogWriter答案:A88. 以下哪个不是Android 中的应用性能指标?A. CPU 使用率B. 内存使用率C. 电量消耗答案:D89. Android 中用于实现应用资源压缩的工具是?A. aaptB. apktoolC. dex2jarD. jd-gui答案:A90. 以下哪个不是Android 中的应用发布渠道?A. Google PlayB. 应用宝C. 豌豆荚D. 开发工具答案:D91. Android 中用于实现应用版本回退的方法是?A. 安装旧版本的APKB. 恢复应用数据C. 没有直接的版本回退方法D. 使用系统的备份功能答案:C92. 以下哪个不是Android 中的应用图标尺寸?A. 48x48 dpB. 72x72 dpC. 96x96 dpD. 128x128 dp答案:D93. Android 中用于实现应用推送通知图标定制的方法是?A. 在NotificationCompat.Builder 中设置B. 在AndroidManifest.xml 中设置C. 在资源文件中设置D. 无法定制答案:A94. 以下哪个不是Android 中的应用启动画面类型?A. 静态图片B. 动态图片C. 视频D. 文本答案:D95. Android 中用于实现应用数据迁移的方法是?A. 手动复制数据B. 使用数据库迁移工具C. 利用系统提供的备份和恢复机制D. 以上都是答案:D96. 以下哪个不是Android 中的应用架构组件?A. LiveDataB. ViewModelC. RepositoryD. AdapterView答案:D97. 以下哪个不是Android 中获取设备唯一标识的可靠方法?A. IMEIB. Android IDC. UUIDD. 以上都不是可靠方法答案:D98. Android 中用于实现应用在后台运行时保持网络连接的方式是?A. 使用前台服务B. 使用唤醒锁C. 使用JobSchedulerD. 以上都是答案:D99. 以下哪个不是Android 中处理图片加载时的优化策略?A. 图片压缩B. 图片缓存C. 图片懒加载D. 图片加密答案:D100. Android 中用于实现应用在不同屏幕尺寸上自适应布局的方式是?A. 使用百分比布局B. 使用约束布局C. 使用多种布局文件D. 以上都是答案:D。
Android复习提纲
![Android复习提纲](https://img.taocdn.com/s3/m/b8d932ef6294dd88d0d26b0a.png)
Android复习提纲
1)开发Android程序所需的SDK、ADT分别是什么
2)Android生命周期,比如启动时需要执行的方法等;
3)Android中常用的容器类型(ViewGroup类型)的组件有哪些;
4)Android中常用的组件TextView、EditView、Button等的使用;
5)Android中Button按钮事件如何处理;
6)选项菜单和上下文菜单的区别和使用;
7)Android中组件ID如何在布局文件中定义,又如何在程序中通过ID来获取组件实例;8)Android程序在Eclipse中的调试工具是哪个(DDMS),如何打印日志(Log类的使用);9)了解布局器的常用属性,比如LinearLayout布局管理器的常用属性;
10)Color类、Paint类的使用;
11)Android数据库SQLite的特点;
12)Intent(意图)的使用,创建间接意图需要哪些属性;
13)ArrayAdapter的使用;
14)你知道ContentProvider和ContentResolver之间的关系吗?
15)如何通过SharedPreferences来保存程序的状态信息;请参考课堂例子;
16)如何通过SQLite来对数据库的数据进行读取操作;
17)你知道怎么通过“上”、“下”、“左”、“右”按键来移动屏幕上的图片吗?
18)Andriod程序打包之后是已什么文件形式存在?
19)Android模拟器的特点;
20)Android程序的Mainifest文件时做什么用的?。
android各个知识点总结
![android各个知识点总结](https://img.taocdn.com/s3/m/5a06c841ba68a98271fe910ef12d2af90342a817.png)
android各个知识点总结一、Android基础知识点1. Android系统架构Android系统采用了一种分层的架构,分为四个主要的层次:Linux内核层、系统运行库层、应用框架层和应用层。
在Android应用开发中,了解Android系统的架构是非常重要的,可以帮助我们更好地理解Android的工作原理。
2. Android应用的生命周期Android应用的生命周期包括启动、运行、暂停、停止和销毁等几个阶段。
了解Android 应用的生命周期对于设计和开发Android应用是非常重要的,可以帮助我们更好地管理应用的状态和行为。
3. Android应用的组件Android应用的组件包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content Provider)。
在Android应用的开发中,了解每种组件的特点和用法是非常重要的,可以帮助我们更好地构建Android应用。
4. Android界面设计Android应用的界面设计是非常重要的,一个好的界面设计可以提高用户体验。
在Android应用的界面设计中,我们可以使用布局文件、控件和样式等技术来实现。
了解Android的界面设计技术可以帮助我们设计出更加美观、易用的界面。
5. Android存储Android应用可以使用多种方式进行数据的存储,包括文件存储、SharedPreferences、SQLite数据库等。
了解Android的存储技术可以帮助我们更好地管理应用的数据。
6. Android网络编程Android应用可以通过网络来获取数据或与服务器进行通讯,Android提供了多种网络编程的方式,包括HttpURLConnection、Volley、OkHttp等。
了解Android的网络编程技术可以帮助我们更好地实现应用与服务器的通讯。
7. Android多线程在Android应用的开发中,多线程是非常常见的,它可以提高应用的性能和用户体验。
android考试复习资料(参考模板)
![android考试复习资料(参考模板)](https://img.taocdn.com/s3/m/480f63406bec0975f565e226.png)
Unit 4. Android 生命周期➢Android系统中的进程优先级由高到低前台进程高优先级中优先级低优先级可见进程服务进程后台进程空进程➢Android组件组件是可以调用的基本功能模块,Android应用程序就是由组件组成的Android系统有四个重要的组件,分别是Activity、Service、BroadcaseReceiver和ContentProviderActivity是Android程序的呈现层,显示可视化的用户界面,Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity。
Service用于没有用户界面,但需要长时间在后台运行的应用BroadcaseReceiver是用来接受并响应广播消息的组件ContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据,私有数据可以是存储在文件系统中的文件,也可以是SQLite中的数据库Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态Activity 事件的回调函数:protected void onStart();protected void onRestart();protected void onResume();protected void onPause();protected void onStop();protected void onDestroy();Activity:Android系统提供了两种调试工具LogCat和DevTools,用于定位、分析及修复程序中出现的错误➢LogCat程序调试原理1.引入android.util.Log包2.使用Log.v(),Log.d(),Log.i(),Log.w() 和 Log.e()五个函数在程序中设置“日志点”3.当程序运行到“日志点”时,应用程序的日志信息便被发送到LogCat中4.判断“日志点”信息与预期的内容是否一致E.g. final static String TAG = "LOGCAT"; Log.v(TAG,"Verbose");➢DevTools是用于调试和测试的工具,包括了一系列用户各种用途的小工具Unit 5. Android 用户界面✓常见的系统控件包括TextView、EditText、Button、ImageButton、Checkbox、RadioButton、Spinner、ListView和TabHostTextView:显示字符串,EditText是一个具有编辑功能的TextView相应的XML文件:<TextView android:id="@+id/TextView01" //@表示后面的字符串是ID资源,加号(+)表示需要建立新资源名称,并添加到R.java文件中android:layout_width="wrap_content" //wrap_content表示TextView的宽度只要能够包含所显示的字符串即可,若为fill_content表示则表示控件宽度将等于父控件的宽度android:layout_height="wrap_content"android:text="TextView01" ></TextView>Test.java:TextView txv=(TextView)findViewByID(R.id.TextView01);txv.setText("User:");ImageButton:将img1拷贝到/res/drawable文件夹下(R.java中自动更新)imageButton.setImageResource(R.drawable.img1);按钮响应点击事件:添加点击事件的监听器imageButton.setOnClickListener(new View.OnClickListener(){public void onClick(View view)点击事件的回调函数{txv.setText("ImageButton按钮");}})每个View仅可以注册一个点击事件的监听器,如果使用setOnClickListener()函数注册第二个点击事件的监听器,之前注册的监听器将被自动注销.多个按钮注册到同一个点击事件的监听器上,代码如下:Button.OnClickListener buttonListener = new Button.OnClickListener(){ @Overridepublic void onClick(View v) {switch(v.getId()){case R.id.Button01:textView.setText("Button按钮");return;case R.id.ImageButton01:textView.setText("ImageButton按钮");return;}}};button.setOnClickListener(buttonListener);imageButton.setOnClickListener(buttonListener);CheckBox和RadioButton:怎样定义同组中的RadioButton?XML中:<RadioGroup android:id="@+id/RadioGroup01"android:layout_width="wrap_content"android:layout_height="wrap_content"><RadioButton android:id="@+id/RadioButton01"android:layout_width="wrap_content"android:layout_height="wrap_content“android:text="RadioButton01" ></RadioButton><RadioButton android:id="@+id/RadioButton02"android:layout_width="wrap_content"android:layout_height="wrap_content“android:text="RadioButton02" ></RadioButton></RadioGroup>Test.java中:RadioButton radioButton1 =(RadioButton)findViewById(R.id.RadioButton01);RadioButton.OnClickListener rblistener=new RadioButton.OnClickListener(){public void OnClick(View v){//process;}};radioButton1.setOnClickListener(rblistener);Spinner:(similar to ComboBox)Test.java:Spinner spinner=(Spinner)findViewById(R.id.Spinner01);List<String>list=new ArrayList<String>( );list.add("item1");list.add("item2");ArrayAdapter<String>adapter=new ArrayAdapter <String>(this,yout.simple_spinner_item, list );//数组适配器能够将界面控件和底层数据绑定在一起adapter.setDropDownViewResource(yout.simple_spinner_dropdown_it em);spinner.setAdapter(adapter);ListView:(垂直显示的列表控件)ListView listv=(ListView)findViewById(R.id.ListView01);List<String>list=new ArrayList<String>();List.add("item1");List.add("item2");ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, yout.simple_list_item_1, list );listv.setAdapter(adapter);AdapterView.OnItemClickListener listvListener=new AdapterView.OnItemClickListener(){public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {String msg =””;textView.setText(msg);}};}TabHost:实现多个分页之间的快速切换(Similar to TabControl)有几个tabpage就建立几个xmlTest.java:public class TabDemo extends TabActivity { //普通的都是 extends Activity // 与以往继承Activity不同,TabActivity支持内嵌多个Activity或Viewpublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TabHost tabHost = getTabHost(); //获得Tab标签页的容器LayoutInflater.from(this).inflate(yout.tab1,tabHost.getTabContentView(),true);//LayoutInflater将tab1.xml文件中的布局转换为Tab标签页可以使用的View对象LayoutInflater.from(this).inflate(yout.tab2,tabHost.getTabContentView() ,true);LayoutInflater.from(this).inflate(yout.tab3,tabHost.getTabContentView() ,true);tabHost.addTab(tabHost.newTabSpec("TAB1").setIndicator("线性布局").setContent(yout01));//使用addTab()函数在tabHost上添加了第1个标识为"TAB1"的分页tabHost.addTab(tabHost.newTabSpec("TAB2").setIndicator("绝对布局").setContent(yout02));tabHost.addTab(tabHost.newTabSpec("TAB3").setIndicator("相对布局").setContent(yout03));}✓界面布局:声明Android程序的界面布局有两种方法:使用XML文件描述界面布局在程序运行时动态添加或修改界面布局用户既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种方式使用XML文件声明界面布局的特点:将程序的表现层和控制层分离在后期修改用户界面时,无需更改程序的源代码可视化界面加快设计线性布局LinearLayout:如果垂直排列,则每行仅包含一个界面元素如果水平排列,则每列仅包含一个界面元素框架布局FrameLayout表格布局TableLayout:添加行为TableRow<TableLayout android:id="@+id/TableLayout01"android:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="/apk/res/android"><TableRow android:id="@+id/TableRow01"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextView...></TextView><EditText ...></EditText></TableRow><TableRow...><Button...></Button><Button...></Button></TableRow></TableLayout>相对布局(RelativeLayout):e.g.android:layout_below="@id/label"android:layout_alignParentRight="true"android:layout_toLeftOf="@id/cancel"android:layout_alignTop="@id/cancel"//声明与ID为cancel的元素在相同的水平位置绝对布局(AbsoluteLayout)android:layout_x="40dip"android:layout_y="40dip"✓菜单:Android系统支持三种菜单:选项菜单(Option Menu)子菜单(Submenu)快捷菜单(Context Menu)选项菜单分为图标菜单(Icon Menu)& 扩展菜单(Expanded Menu)。
android的知识点总结
![android的知识点总结](https://img.taocdn.com/s3/m/10798cb6c9d376eeaeaad1f34693daef5ef713c6.png)
android的知识点总结作为目前最受欢迎的移动操作系统之一,Android在智能手机、平板电脑、智能手表等设备上得到了广泛的应用。
针对Android的开发和应用有很多的知识点需要掌握,下面就对Android的一些知识点进行总结。
一、Android基础知识1. Android系统架构Android系统架构主要由四个部分组成,它们分别是Linux内核、库、应用框架和应用程序。
Linux内核是整个系统的核心,负责系统的底层管理工作,比如内存管理、进程管理、文件系统和设备驱动等。
库是一系列的核心功能模块,负责提供系统的核心功能。
应用框架提供了丰富的API供应用程序开发,而应用程序是最终的软件产品,它们运行在应用框架之上。
2. Android应用程序的结构Android应用程序的结构主要由四个部分组成,它们分别是Activity、Service、Content Provider和Broadcast Receiver。
Activity是用户界面的呈现单元,负责与用户进行交互。
Service是一种后台运行的组件,负责执行耗时操作。
Content Provider提供了统一的数据访问接口,使得应用程序可以共享数据。
Broadcast Receiver负责接收来自系统或其他应用程序的广播消息。
3. Android的四大组件Android的四大组件指的是Activity、Service、Content Provider和Broadcast Receiver。
它们是Android系统中最重要的四个组件,通过这些组件可以构建各种不同类型的应用程序。
4. Android应用程序的生命周期Android应用程序的生命周期是指从应用程序启动到关闭的整个过程。
它主要包括活动状态、暂停状态、停止状态和销毁状态四个阶段。
在应用程序的整个生命周期中,开发人员可以通过重写对应的生命周期方法,来控制应用程序的行为。
5. Android应用程序的布局Android应用程序的布局主要由若干的View组件组成,它们可以通过代码或XML文件进行描述。
(带答案)Android复习资料
![(带答案)Android复习资料](https://img.taocdn.com/s3/m/e7021d375e0e7cd184254b35eefdc8d376ee1462.png)
(带答案)Android复习资料选择题1. 下面不是Android四大组件之一的(B )A. ActivityB.IntentC. ServiceD. ContentProvider2. 下面关于广播叙述错误的是(A)A. 广播是Android四大组件之一B. BroadcastReceiver有两种注册方式,静态注册和动态注册C. 静态注册需要在Mainfest.xml中配置D. 动态注册需要在应用退出时候接触广播的注册。
3. 下面关于BroadcastReceiver错误的是(B):A. BroadcastReceiver有两种注册方式,静态注册和动态注册。
B. BroadcastReceiver必须在AndroidMainfest文件中声明C. BroadcastReceiver的使用,一定有一方发送广播,有一方监听注册广播,onReceive方法才会被调用。
D. 广播发送的Intent都是隐式启动。
4. 下面关于谁先接收广播顺序错误的是(B)A. 有序广播,优先级高的先接收B. 有序广播,同优先级的动静态广播接收器,静态优先于动态。
C. 有序广播,同优先级的动态广播接收器,先注册的大于后注册的。
D. 普通广播时,无视优先级,动态广播接收器优先于静态广播接收器5. 下面关于广播说法错误的是(B)A. 广播分为有序广播和无序广播B. 使用abortBroadcast方法可以中断所有广播的传递。
C. 广播注册方式分为动态和静态D. sendOrderBroadcast用来向系统广播有序事件,sendBroadcast()是用来广播无序事件。
6. 下列关于Intent启动组件说法错误的是(C)A.startActivity( )B. startService( )C. startBroadcastReceiver()D.startActivityForResult()7. 对于广播的发送,Intent的启动方式是(B)A.显式启动B. 隐式启动C. A和B都可以D. 以上说法都不正确。
Android期末复习题总结
![Android期末复习题总结](https://img.taocdn.com/s3/m/7d3c9ff3f9c75fbfc77da26925c52cc58bd6906f.png)
1、Intent的Component属性的作用是什么,如何定义此属性component组件,指定Intent的的目标组件的类名称;通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件;但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程;指定了这个属性以后,Intent的其它所有属性都是可选的;Component属性的作用是用来指定Intent的目标组件的类名称;如果Component这个属性被指定了的话, Intent的其它属性都是可选项,Android会直接使用Component指定目标组件,而不再执行其它查找过程;在使用时,需要先创建一个ComponentName对象,然后将它设置成Intent对象的Component的属性;通过setComponent、setClass和setClassName三种方法都可以设置组件的名称,通过getComponent方法则可获得设置项;2、发送广播时,可以通过sendCatagoryBroadcast方法将Intent对象发送出去 . 错3、Android是什么一种操作系统4、下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是DVM指dalivk的虚拟机;每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例;而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念;5、Android操作系统最早由哪个公司研发Android公司6、下列中不属于手持设备的是机顶盒7、下列不是手机操作系统的是 ;Windows Vista8、到目前为止,Android操作系统的最高版本是哪个Android L9、安装Android SDK时,可以通过在线安装或离线安装;A ndroid sdk manager10、开发Android应用程序时,一般使用的计算机语言是 ;JAVA11,Canva类没有在AndroidManifest中正确申明sActivitys12、对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将 Intent映射给可以处理此Intent的Activity、IntentReceiver或Service 对Intent 可以传递 View对象错Intent起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦对通过Intent可以删除程序对13、下面退出Activity错误的方法是 ;14、当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是 ;startActivityResult15、这是一个资源配置文件,下面描述正确的是这个shape文件是画一条虚线,实线段5dp,间隔3dp16、Toast toast = new Toastthis; "今天天气不错\n哈哈"; ; 上面代码的执行结果是什么 ;代码会抛出异常,因为new出的Toast对象不能再使用setText方法来设置提示框文本17、setOnTouchEvent 设置返回值为true 和 false有何区别返回true表示这个消息已经被处理结束,后续的handler不再接收到这个消息18、下列哪个可做EditText编辑框的提示信息 ; android:hint19、使进度条变横向的系统样式是20、关于Android 事件机制与事件监听,下列说法不正确的有 ;类里的event listener是一个带有回调方法的接口,当UI里的组建是被用户触发时,这些方法会被系统框架所调用;对ii.来自 ,当点击这个Item在触摸模式,或者当光标聚集在这个Item上时按下“确认”键,导航键,或者轨迹球, 它会被调用;对iii.来自 ,当长按这个Item在触摸模式,或者当光标聚集在这个Item上时长按“确认”键,导航键,或者轨迹球,它会被调用;对iv.来自 ,当手移到或离开这个Item, 它会被调用对v.来自,当光标移到这个Item,按下和释放一个按键的时候,它会被调用;对vi.来自,在这个Item的范围内触摸的时候,它会被调用;对vii.来自,当上下文菜单被建立时,只需短按一下,它会被调用; 错21、关于对话框,下面说法正确的是 ;对话框的父类不是View22、创建一个提示对话框,应创建下面哪种对话框实例 ; AlertDialog23、在AlertDialog中,以下哪个方法是用于取消的 ; setNegativeButton24、在android中使用Menu时可能需要重写的方法有 ; 1 onCreateOptionsMenu 3 onOptionsItemSelected25、键盘事件处理方法中,以下哪个方法是用来处理键盘按键的释放事件的 ; keyReleasedint keyCode26、下面Android的存储方式中,除SharedPreferences外还有哪种方式是不可以将数据在不同应用间数据共享的 ;Files27、当使用文件存储的时候,默认创建的文件会放在什么位置 ;app28、关于SharedPreferences和文件存储数据描述正确的是 ;使用文件存储需要创建文件,而SharedPreferences的存储方式自动创建xml文件29、使用SharedPreferences进行数据存储的时候,下面哪个方法是不参与的 ;edit30、使用SharedPreferences存储数据时,会创建一个什么类型的文件来进行数据存放 ;.xml文件31、在程序中,使用SD的文件需要使用以下哪些权限 ;32、下面哪种不是Android的存储方式 ;ContentProvider33、通过SharedPreferences保存的数据存储在什么文件夹下 ;shared_prefs34、对于一个已经存在的SharedPreferences对象setting,想向其中存入一个字符串"person",setting应该先调用什么方法 ; edit35、下列说法哪个不正确 ;一个Activity的对象a1上弹出了一个模拟对话框形式的Activity的对象a2,按返回键后a1执行了onStart和onResume方法,a2执行了onPause,onStop和onDestroy方法;错拥有android:configChanges="orientation|keyboardHidden" 标签的Activity在横竖屏转换时不会再执行onCreate方法;对默认情况下对一个Activity的对象进行横竖屏切换,该对象的onCreate方法在每次切换时都会执行;对一个界面上的EditText中输入文字后,再按下Home,该界面消失,等再回到该界面文字内容仍在,onCreate方法也不会执行;对36、下面布局中,哪个布局会把控件放在左上角,当添加新的控件的时候,将覆盖在前一个控件的上层,并且不能设计控件的位置 ;FrameLayout37、以下有关RelativeLayout说法正确的是 ; 这种布局适合横竖屏切换比较频繁的应用38、关于RelativeLayout布局中,下面对属性描述不相符合的是 ;android:layout_marginLeft="40px"表示当前控件左边空出40像素的空间;android:layout_below="id/aclock"表示当前控件放置于引用名为aclock的控件的下方android:layout_centerInParent="true" 表示当前控件放置于父控件的横向和纵向的中央位置;android:layout_alignParentTop="id/mtop"表示当前控件和引用名为mtop的父控件顶端对齐不符合39、关于RelativeLayout描述正确的是 ;该布局为相对布局,其中控件的位置都是相对位置 ;40、在RelativeLayout布局中,有一个id为entry的EditText,目前有一个Button想放置在其左边,应为Button指定什么属性设置 ;android:layout_toLeftOf="id/entry"41、在一个相对布局中怎样使一个控件居中 ;android:layout_centerInParent="true"42、在表格布局中,android:collapseColumns="1,2"的含义是:在屏幕中,不管是否能都显示完,折叠1、2列43、绝对布局中,android:layout_x 的含义有以手机左上为原点,组件显示到屏幕中的横向坐标值;44、简述开发手机联盟45、以下哪一个类可以实现广播接收的功能 ;BroadcastReceiver46、Android系统有哪些特点1应用框架可以重复使用,其组件也可以更换;2Dalvik虚拟机针对移动设备进行了优化;3优化的图形能力支持2D/3D图形OpenGL ES ;4集成了基于开源WebKit引掣的浏览器;5采用SQLite实现结构化数据存储;6多媒体支持多种音频、视频格式;7GSM Telephonyhardware dependent;8支持蓝牙Bluetooth,3G和WiFi;9支持照相机、GPS、指南针和加速度仪等传感器硬件;10丰富的开发环境,包括模拟机、调试工具、内存运行检测,以及为Eclipse IDE所写的插件;47、在中注册一个广播,需要使用什么标签 ;<receiver>48、定义广播需要重写父类中的什么方法 ;onCreate49、在程序中,发送广播的方法是以下哪一个 ;sendBroadcast50、定义一个广播,需要继承哪个类BroadcastReceiver51、简述Android应用程序的组成;一般来说,Android 程序包含如下主要的组件类:活动Activity;用于表现功能服务Service;相当于后台运行的Activity 广播接收器BroadcastReceiver——用于接收广播意图; Intent——用于连接以上各个组件,并在其间传递消息;ContentProviders实现不同组件之间的数据共享;View提供了可视化界面的展示;52Dalvik虚拟机与Sun公司定义的标准虚拟机JVM有何不同1、Dalvik和JVM的首要差别是Dalvik基于寄存器而JVM基于栈,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短;2Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能;3Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行;4不同于JVM运行Java字节码,Dalvik虚拟机运行的是其专有的文件格式dex,dex文件格式可以减少文件整体尺寸,提高I/O操作的类查找速度;5所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制;53、请谈一下Android系统的架构Android系统采用了分层架构,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层;54、Android开发环境搭建需要哪些主要步骤安装Java 安装Eclipse 安装Android SDK 安装Eclipse插件ADT55、 Windows环境下如何检测已经安装成功Java写一个简单的java程序来测试JDK是否已安装成功:public class HelloWorld{public static void mainString args{}}将以上代码保存为文档名为的文档;打开命令提示符窗口,进入到所在目录,键入下面的命令:javacjava HelloWorld如果屏幕如图,能够正确输出且不提示错误,表示JDK开发环境配置完成;56、什么是AVD,有哪些特点Android Virtual Device是一个经过配置的模拟器,可以模拟显示屏幕的大小、屏幕分辨率、触摸屏、轨迹球、键盘、GPS、声音播放、SD卡支持,缓存区大小等;AVD也存在着缺点,不能模拟重力感应、麦克风等一些硬件设备,因此有时候也需要实体手机上运行和测试Android应用程序;57、什么是ADTAndroid Development Tools plugin ADT 是使用Eclipse进行Android移动应用开发的一个方便的开发、仿真测试平台; 58、在手机的实机上进行开发调试需要在手机上如何设置在手机上进行开发调试需要在手机上进行设置,选择设置—应用程序-开发-USB调试,之后USB连接开发计算机才能进行开发调试;59、Activity,intent、Service和BroadCastReceiver之间是什么关系60、Intent的Action、Category属性的作用是什么Action属性主要用来定义Intent要执行的抽象动作,它是一个字符串;使用时只需在程序中定义,并在要访问组件的<intent-filter…/>子元素中声明就可以使用了;Category属性是对Action定义动作的补充,也是一个普通的字符串,通常两者结合使用;在文件里, <Activity…/>元素中所配置的子元素<intent-filter…/>的作用就是用于指定该Activity可响应的Intent;61、Intent的Data、Type属性的作用是什么Intent的Data属性的作用是向Action属性提供操作的数据;Data属性接受一个Uri对象,此对象可以决定所要操作数据的类型及数据的具体值;可以通过设置Type属性来显式指定特定类型数据MIME;一般Intent会根据数据本身对其数据类型进行判定,但是如果使用Intent的Type属性进行设置,可以实现强制显式指定的类型而不再进行推导;62、简述Intent的功能与作用;Intent是Android中各种组件之间传送信息的“信使”;中文里Intent有“意图、目的”的意思 ,在这里仍兼有这样的含义,因为在组件之间导航的过程中,我们也需要使用Intent将意图一并传递过去;上一章中,在一个Activity里激发另一个Activity的例子中就体现了Intent的功能;使用Intent的好处就是应用程序可以启动只具有某种特征的的组件,而不必指定某个具体的组件;Intent中可以封装不同组件之间进行导航的意图;这些意图需要通过Intent的属性来表现;63、Intent的实现策略分为几种类型,请分别叙述;Intent的实现策略即指Intent寻找组件的方法;这种策略分为两种:一种是直接Intent,也称为显式Intent;另一种是间接Intent,也称为隐式Intent;直接Intent方式需要通过指定Intent的Component属性调用setComponentComponentName或者setClassContext, Class来指定来实现;这样应用就会对应的启动所指定的具体组件类;在以上对Intent的Component属性的介绍中就说明过;这种策略主要在源组件知道目标组件名称的情况下使用;间接Intent策略中没有指定Component属性的Intent,寻找组件需要通过<intent-filter…/>子元素来实现;这就要求Intent中包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定出满足Intent的组件;64、Android系统提供的Action常量有哪些,如何使用;Action常量常量值字符串动作说明ACTION_CALL 呼叫指定用户ACTION_EDIT 对于指定数据进行编辑ACTION_VIEW 向用户显示指定数据ACTION_PICK 从列表中选择并返回某项目ACTION_DIAL 显示打电话面板,可以实现紧急呼叫ACTION_SEND 向他人发送数据短信ACTION_ANSWER 应答电话65、如何在程序清单文件中配置Activity对于应用程序中的每一个Activity我们都需要在程序清单文件中进行配置,这样才能有机会运行;这种配置也是非常简单的,方法就是在程序清文件的<application…/>元素中添加<Activity…/>子元素即可;添加时一般要注明该Activity的以下三个属性:1 name:指明要配置的Activity的实现类2 icon:指明要配置的Activity的图标3 label:指明要配置的Activity的标签在文件中我们除了要配置每一个Activity外,还需进行子元素<intent-filter…/>的配置,该元素用于指定Activity可响应的Intent;对于每一个应用程序来说,无论它是由几个Activity组成,但只有一个Activity是它的入口;到底哪一个是入口的Activity,这得由清单文件中的子元素<intent-filter…/>来决定;如果想指定某个Activity为程序入口,这时需在其对应的子元素<intent-filter…/>中必须具备如下属性:66、介绍与Activity生命周期相关的回调方法的功能及使用方法;与Activity生命周期相关的回调方法主要有以下七个:1 onCreate:当创建一个Activity时,系统会回调onCreate方法进行初始化设置,如创建视图、绑定数据至列表;2 onStart:当一个Activity开始执行时此方法被回调,这时的Activity是可见的,会紧跟在onCreate方法后面执行;3 onResume:当一个Activity真正开始运行或重新恢复时被回调,此时会获得焦点;当一个Activity运行时,如果用户又激活了另一个Activity,这时第一个Activity将会被暂停;在第一个Activity在没有被杀死的情况下,以后又有了重新运行的机会,那么就会直接调用onResume方法将其恢复;4 onPause:暂停Activity时被回调;如果在一个Activity运行时,用户又激活了另一个Activity,这时将会调用第一个Activity的onPause方法将其暂停;在Activity的状态变换过程中onResume和onPause方法经常被调用,因此在使用中应使用简单高效的代码;5 onStop:停止Activity时被回调;如果在一个Activity运行时,用户又激活了另一个Activity,而且第一个Activity很久都没有得到再次运行机会,就会调用onStop方法将第一个Activity停止;6 onReStart:在Activity从停止状态转换到活动状态前,回调该方法;当一个处于停止状态的Activity又获得了用户输入焦点,就会调用onRestart方法,重新开始执行这个Activity;7 onDestroy:在销毁Activity前,即进入非活动状态前,回调该方法;67、Activity在其生命周期中会处于哪几种状态一个Activity在其生命周期中会在四个重要状态间进行转换;下面分别说明各状态:1 活动状态,处于该状态时,Activity位于前台,用户可见且可获得焦点;2 暂停状态,处于该状态时,该Activity仍可见,但失去焦点,其它Activity位于前台;3 停止状态,处于该状态时,Activity不可见且失去焦点;4 销毁状态,处于该状态时,Activity被系统或进程结束;68、如何将一个Activity设置成窗口的样式;在中定义Activity的地方添加:android:theme=”android:style/”或android:theme=”android:style/”就变成半透明的69、使用资源包括哪几种方法1 在代码里使用资源类;2 在代码里调用资源类并实例化;3 从其他资源类里引用;70、谈谈android中常用的几种布局;在Android中,共有五种布局方式,分别是:FrameLayout框架布局,LinearLayout 线性布局,AbsoluteLayout绝对布局,RelativeLayout相对布局,TableLayout表格布局;1FrameLayout 框架布局,放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素,适合浏览单张图片;2LinearLayout 线性布局,是应用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,每个子组件都是以垂直或水平的方式来定位默认是垂直;3AbsoluteLayout 绝对定位布局,采用坐标轴的方式定位组件,左上角是0,0点,往右x轴递增,往下Y轴递增,组件定位属性为android:layout_x 和 android:layout_y来确定坐标;4RelativeLayout 相对布局,根据另外一个组件或是顶层父组件来确定下一个组件的位置;和CSS里面的类似;5TableLayout 表格布局,类似Html里的Table.使用TableRow来布局,其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格;71、android中常用的数据存储方式有哪些常用的数据存储方式:SharePreference存储、File存储分为手机内存存储和SD卡存储、SQLite数据库存储和网络存储;72、一个Activity就是一个可视化的界面或者看成是控件的容器;对73、Intent有很长的生命周期,是没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 ; 错74、当Antivity的启动模式设置为SingleTop表示当该Anctivity的实例在栈顶时只会产生一个实例;对75、onPause方法在activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是对运行时数据的现场保护; 对76、onDestroy是activity被结束掉前最后一个被调用方法,当调用finish方法或者系统为了节省空间将它暂时性的结束掉时候调用;对77、不是所有的Activity都有自己的生命周期; 错78、 onPause 是service的生命周期方法错79、如果service已经启动,再次启动该服务时将先后调用onCreate和onStartCommand方法; 错80、利用HttpURLConnection的.getInputStream方法得到的是字符流;错81、程序中使用http协议从网上下载文件时,无需设置访问网络的权限;错82、使用startService方法启动服务后,调用者和服务间没有关联,即使调用者退出了,服务任然进行;对83、当应用程序中某广播在AndroidMainifest进行注册后,即使该应用程序关闭后,也可以接受操作系统发出的广播信息;对84、UIthread 通常就是main thread,Android启动程序时会替它建立一个MessageQueue; 对85、广播接收器可以在Activity中单独注册与注销;对86、广播接收器只能在配置文件中注册; 错87、对下面代码: =new long{100,200,100,500}, 其中notification是通知管理器对象,表示我们对Notification设置了震动,并且是100ms延迟后,震动200ms,然后停止100ms,再震动500ms 对88、使用Notification时,需要发送广播实现notify; 错89、在中注册广播,需要使用标签; 对90、有2种方式注册BroadcastReceiver的方法,一是静态的在中注册,二是动态的在代码中注册; 对91、如果需要一个通知立即显示,那么在构造Notification对象的时候,需要在构造函数的第三个参数中传递 new Calendar的值错92、取消注册BroadcastReceiver,调用方法对93、编写用Intent实现的用户登录程序;要求:在第一个界面上输入用户名和密码,在第二个界面上显示前一界面中输入的用户名和密码;:public class MainActivity extends Activity {private TextView user, pass;private EditText username, password;private Button loca;Overrideprotected void onCreateBundle savedInstanceState {savedInstanceState;new MyButtonListener;}class MyButtonListener implements OnClickListener {Overridepublic void onClickView v {String tx1 = .toString;String tx2 = .toString;Intent intent = new Intent;"tx1", tx1;"tx2", tx2;, ;}}}:public class OtherActivity extends Activity {private TextView te1, te2, te3, te4;Overrideprotected void onCreateBundle savedInstanceState { savedInstanceState;Intent intent = getIntent;String value1 = "tx1";String value2 = "tx2";value1;value2;}}:android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="+id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名" /><EditTextandroid:id="+id/username"android:layout_width="fill_parent"android:layout_height="wrap_content" /><TextViewandroid:id="+id/pass"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码" /><EditTextandroid:id="+id/password"android:layout_width="fill_parent"android:layout_height="wrap_content" /><Buttonandroid:id="+id/loca"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="登陆" /></LinearLayout>:<xml version="" encoding="utf-8">android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><TextViewandroid:id="+id/te1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名:" /><TextViewandroid:id="+id/te2"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextView android:id="+id/te3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码:" /><TextViewandroid:id="+id/te4"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>:<xml version="" encoding="utf-8"><resources><string name="app_name">android intent</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world</string> </resources>94、编写程序实现如下功能:1 程序包含2个Activity2 Activity01包含一个按钮,点击按钮跳转到Activity02;3 Activity02包含一个按钮,点击按钮跳转到Activity01; :public class Activity01 extends Activity{Overridepublic void onCreateBundle savedInstanceState{savedInstanceState;"启动Activity02";new OnClickListener{Overridepublic void onClickView v{Intent intent=new Intent,;startActivityintent;}};}}public class Activity02 extends Activity{Overridepublic void onCreateBundle savedInstanceState {savedInstanceState;"进入Activity01";new OnClickListener{Overridepublic void onClickView v{Intent intent=new Intent,;startActivityintent;}};}}:<xml version="" encoding="utf-8">android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextView android:id="+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Activity01" /><Button android:id="+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="启动Activity" /></LinearLayout>:<xml version="" encoding="utf-8">android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Activity02" /><Buttonandroid:id="+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /></LinearLayout>:<xml version="" encoding="utf-8"><resources><string name="action_settings">Settings</string><string name="hello_world">Activity01</string></resources>95、使用CheckBox控件实现多项选择;要求:添加4个选项,名称分别为:swim 、run 、 dance 、walk:public class MainActivity extends Activity {TextView m_TextView1;Button m_Button1;CheckBox m_CheckBox1;CheckBox m_CheckBox2;CheckBox m_CheckBox3;CheckBox m_CheckBox4;/ Called when the activity is first created. /Overridepublic void onCreateBundle savedInstanceState {savedInstanceState;m_CheckBox1.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};m_CheckBox2.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};m_CheckBox3.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};m_CheckBox4.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};new {public void onClickView v {int num = 0;if {num++;}if {num++;}if {num++;}if {num++;}DisplayToast"谢谢参与你一共选择了" + num + "项";}};}public void DisplayToastString str {Toast toast = this, str, ;, 0, 240;;}}:<xml version="" encoding="utf-8">android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="+id/textview"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/hello_world" /><CheckBoxandroid:id="+id/checkbox1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox1" ></CheckBox><CheckBoxandroid:id="+id/checkbox2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox2" ></CheckBox><CheckBoxandroid:id="+id/checkbox3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox3" ></CheckBox><CheckBoxandroid:id="+id/checkbox4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox4" ></CheckBox><Buttonandroid:id="+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交" ></Button></LinearLayout><xml version="" encoding="utf-8"><resources><string name="app_name">Lab</string><string name="action_settings">Settings</string><string name="hello_world">Hello world</string><string name="CheckBox1">swim</string><string name="CheckBox2">run</string><string name="CheckBox3">dance</string><string name="CheckBox4">walk</string></resources>96、设计加减法计算器;要求:程序包括两个页面,第一个页面主要包括两个文本编辑框,用于输入两个操作数,输入操作数后,单击系统的MENU按钮,会弹出Menu菜单,Menu菜单包括“相加”、“相减”和“退出”三个按钮,当点击“相加”按钮会对两个操作数执行加法,当点击“相减”按钮时,会对两个操作数执行减法,在另一个页面会显示计算结果;:packageimportimportimportimportimportimport ;import ;importimportimportpublic class MainActivity extends Activity {/ Called when the activity is first create;d. /private EditText factorOne;private EditText factorTwo;private TextView symbol;private Button calculate;Overridepublic void onCreateBundle savedInstanceState {savedInstanceState;setContentView factorOne = EditTextfindViewById factorTwo = EditTextfindViewById symbol = TextViewfindViewById }Overridepublic boolean onCreateOptionsMenuMenu menu {0, 1, 1, 0,2,2, 0,3,3, return menu;}public void add {String factorOneStr = .toString;String factorTwoStr = .toString;Intent intent = new Intent;"one", factorOneStr;"two", factorTwoStr;"three", "+";, ;startActivityintent;}public void sub {String factorOneStr = .toString;String factorTwoStr = .toString;Intent intent = new Intent;"one", factorOneStr;"two", factorTwoStr;"three", "-";, ;startActivityintent;}Overridepublic boolean onOptionsItemSelectedMenuItem item {if==1{finish;}else if==2{add;}else if==3{sub;}return item;}}:packageimportimportimportimportpublic class ResultActivity extends Activity{private TextView resultView;Overrideprotected void onCreateBundle savedInstanceState {savedInstanceState;setContentView resultView = TextViewfindViewById Intent intent = getIntent;String factorOneStr = "one";String factorTwoStr = "two";String symbolStr = "three";int factorOneInt = factorOneStr;int factorTwoInt = factorTwoStr;int result = 0;if"+"{result = factorOneInt+factorTwoInt;}else if"-"{result = factorOneInt-factorTwoInt;}result+"";}}:<xml version=""encoding="utf-8"><LinearLayout xmlns:android=android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:id="+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="操作数一"/><EditTextandroid:id="+id/factorOne"android:layout_width="fill_parent"android:layout_height="wrap_content"/><TextViewandroid:id="+id/symbol"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/symbol"/> <TextViewandroid:id="+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="操作数二"/><EditTextandroid:id="+id/factorTwo"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>:<xml version=""encoding="utf-8"><LinearLayout xmlns:android=android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="+id/result"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout><xml version=""encoding="utf-8"><resources><string name="hello">Hello World</string><string name="app_name">简易计算器</string><string name="action_settings">Settings</string><string name="resultLabel">result</string><string name="symbol">和</string><string name="calculate">计算</string><string name="exit">退出</string><string name="add">相加</string><string name="sub">相减</string></resources>97、制作进度条;要求:点击“开始”按钮进入进度条显示页面,然后每点击一次开始按钮,第一进度条和第二进度条都会发生变化,并将变化的值在页面上显示出来;public class ProgressBarTest extends Activity {private ProgressBar FirstBar=null;private Button myButton=null;private TextView tView;private TextView tView02;private int i=0;Overrideprotected void onCreateBundle savedInstanceState {savedInstanceState;new ButtonListener;}class ButtonListener implements OnClickListener{Overridepublic void onClickView v{ifi==0{;;;100;}else ifi<{i;"第一进度条的值为"+i+"";int y=i+10;"第二进度条的值为"+y+"";i+10;}else{;}i=i+10;}}Overridepublic boolean onCreateOptionsMenuMenu menu {return true;}}<LinearLayout xmlns:android=xmlns:tools=android:orientation="vertical"android:layout_width="wrap_content"android:layout_height="wrap_content"><ProgressBarandroid:id="+id/FirstBar"style="android:attr/progressBarStyleHorizontal"android:layout_width="200dp"android:layout_height="wrap_content"android:visibility="gone"/><TextViewandroid:id="+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"/><TextViewandroid:id="+id/text02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"/><Buttonandroid:id="+id/myButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="begin"/></LinearLayout><xml version=""encoding="utf-8"><resources><string name="app_name">Android_aaa</string><string name="action_settings">Settings</string>。
Android复习
![Android复习](https://img.taocdn.com/s3/m/5aa5996ba9956bec0975f46527d3240c8447a1d7.png)
Android复习Android复习二.填空题1.android中常用的四个布局是framlayout,linenarlayout,relativelayout和tablelayout。
2.android 的四大组件是activiey,service,broadcast和contentprovide。
3.java.io包中的objectinputstream和objectoutputstream类主要用于对对象(Object)的读写。
4.android 中service的实现方法是:startservice和bindservice。
5.activity一般会重载7个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop。
6.android的数据存储的方式sharedpreference,文件,SQlite,contentprovider,网络。
7.当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是startActivityResult()。
8.请使用命令行的方式创建一个名字为myAvd,sdk版本为2.2,sd 卡是在d盘的根目录下,名字为scard.img,并指定屏幕大小HVGA.____________________________________。
9.程序运行的结果是:_____good and gbc__________。
public class Example{String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+" and ");Sytem.out.print(ex.ch);}public void change(String str,char ch[]){str="test ok";ch[0]='g';}}10.在android中,请简述jni的调用过程。
Android总复习
![Android总复习](https://img.taocdn.com/s3/m/ed45d2e702020740bf1e9b4b.png)
A n d r o i d总复习(总27页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第三章Activity初步Activity是Android中最核心的应用程序组件,也是大多数程序必须使用的用于显示界面的组件。
因此,更好地掌握Activity的使用方法对更深入学习Android至关重要。
创建Activity建立一个普通的Java类,该类需从Activity类或者子类中继承。
覆盖Activity类的onCreate方法。
该方法中需显示调用(servdInstanceState)在onCreate方法中使用setContentView装载View配置Activity创建好的Activity不能马上使用,还需要在文件中配置。
每一个Activity都会对应文件中的一个<activity>标签。
在该标签中的常用属性包括:android:name是一个必选属性,用于指定一个Activity的类名。
android:label指定一个字符串或资源ID,用于设置应用程序列表中程序图标下方的文字android:icon用于设置应用程序的图标<activity>标签中包含的<intent-filter>标签用于对Activity进行分类,其中:<action>标签表示Activity可接收的动作一个必选属性,用于指定一个Activity的类名。
<cagegory>标签标识Activity所属的种类当Android系统运行程序时,会首先启动包含动作的Activity。
作为Main Activity,必须要使用作为其类别,表示该Activity可以显示在最顶层。
Intent对象中包含了一组信息Component name, Action, Data,Category,Extras,FlagsIntent对象的使用方法Intent intent=new Intent();,;使用Intent对象在Activity之间传递数据在Activity1中添加需传递给Activity2的键值对Intent intent=new Intent();(“testIntent”,”abc”);,;在Activity2中获取所需键对应的值Intent intent=getIntent();String value=(“testIntent”);通过Intent对象启动的组件可不在同一个应用程序中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、Android四大组件是什么?(activity,service,content provider,broadcast receiver)2、Activity生命周期方法有哪些?不要与service的生命周期方法记混淆(onCreate():当activity是被创建时候,会自动运行该方法。
该方法做一些初始化动作,比如创建views,设置数据到list等等,该方法提供了一个Bundle类型的变量,该变量中有这个activity 以前的状态信息,前提是以前存过这些信息。
这个方法执行完后执行的是onStart()方法;若在onCreate方法中加入finish()方法,onCreate下一个运行onDestroy方法onRestart():把activity从onStop状态唤醒时,会用onRestart方法,该方法优先于再次运行的onStart,运行完onRestart之后运行onStart。
若在onRestart()方法中加入finish()语句,则还是会继续运行onStart及后面的状态方法直到onDestroy运行完onStart():当activity对用户可见时会调用onStart,当activity在前台显示时,会运行onResume;当activity还没在前台显示就被隐藏(停止状态)了会运行onStop(),比如在onStart方法中用了finish()方法的话,onStart()之后就会直接运行onStop->onDestroy。
onResume():当activity开始与用户交互时,会调用onResume,并且为了用户操作此时该activity位于activity栈的顶部。
经过某些操作后该方法执行完后执行的是onPause() onPause():当一个activity运行到onResume方法后,不管是这个activity要销毁还是要暂停或停止,都会调用该方法。
这个方法之后有可能是onResume也有可能是onStop,若是在这个activity-A中打开一个不完全覆盖这个activity-A的新activity-B,那么activity-A就会是onPause状态,当activity-B退出时,activity-A就直接运行onResume(前提是onPause的方法执行完了,否则会等onPause方法执行完后才运行onResume方法,所以不建议在这个方法中执行CPU密集的操作)。
若是需要退出activity-A,那么下一个就会执行onStop。
onPause()用于提交未保存发生变化了的持久化数据,及停止动画及其他其他比较消耗CPU 的事件(比如广播接收器,传感器(比如GPS),或者消耗电量的资源),这是为了更好的运行新的activityonStop():当这个activity完全看不见的时候,会调用onStop方法,因为另一个activity会调用onResume并且覆盖这个activity。
以下三种情况都会使这个activity调用onStop()方法,第一种是一个新的activity被执行,第二种是一个已经存在的activity被切换到最前端,第三种是这个activity要被销毁。
如果通过用户召回这个activity,那么会调用onRestart方法;若这个activity要被销毁,则调用onDestroy方法onDestroy():当activity销毁前会调用该方法,比如发生如下情况:activity调用了finish()方法来结束这个activity,或者因为系统为了节省空间而临时销毁这个activity,这两个情况可以通过isFinishing()方法判断总结:当用户自己退出程序的时候,建议在onStop方法中保存数据;当用户打开一个新的activity的时候,建议通过onSaveInstanceState来保存数据;这里在网上看到很多人说应该放在onPause里保存,其实我觉得在打开新的一个activity的时候,或者将程序至于后台的时候,都会默认调用onSaveInstanceState方法,而且在这种暂停的状态下,Android的内存管理机制也不太会杀死这种状态的activity。
而用onPause保存的时候,若是下一个执行onResume的方法的话,会影响速度,当然数据量小的话也感觉不出来。
)3、Back键与home键对Activity的影响有什么不同,哪个会销毁页面?(back键Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity 启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.home键Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.)4、Android应用程序的目录结构的用途,assests与res文件夹的区别(1.assets:不会在R.java文件下生成相应的标记,存放到这里的资源在运行打包的时候都会打入程序安装包中2.res:会在R.java文件下生成标记,这里的资源会在运行打包操作的时候判断哪些被使用到了,没有被使用到的文件资源是不会打包到安装包中的。
在res文件夹下其实还可以定义一下目录:res/anim:这里存放的是动画资源。
res/xml:可以在Activity中使用getResource().getXML()读取这里的资源文件res/raw:该目录下的文件可以直接复制到设备上,编译软件时,这里的数据不需要编译,直接加入到程序安装包中,使用方法是getResource().OpenRawResources(ID),其中参数ID的形式是R.raw.XXX.)5、Android中gen文件夹中最重要的是R.java文件,它是系统自动生成的,不能手动修改。
6、AndroidManifest.xml文件中各类元素,如<manifest>与<application>,同层次的元素位置,元素属性是否必须设置等。
7、Src values drawable layout 文件夹放什么(1. src:存放所有的*.java源程序。
2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID。
3. assets:可以存放项目一些较大的资源文件,例如:图片、音乐、字体等。
4. res:可以存放项目中所有的资源文件,例如:图片(*.png、*.jpg)、文本等。
5. res\drawable-hdpi:保存高分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
6. res\drawable-ldpi:保存低分辩率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
7. res\drawable-mdpi:保存中等分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
8. res\layout:存放所有的布局文件,主要是用于排列不同的显示组件,在Android程序中要读取此配置。
9. res\values:存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:·arrays.xml:定义数组数据;·colors.xml:定义表示颜色的数据;·dimens.xml:定义尺度,可以使用Resources.getDimension()获得这些资源;·strings.xml:定义字符串,可以使用Resources.getString()或Resources.getText()方法获得这些资源;·styles.xml:定义显示的样式文件;10.res\raw:自定义的一些原生文件所在目录,像音乐、视频等文件格式,Resources.getRawResource()方法可以获得这些资源。
11. res\xml:用户自定义的XML文件,所有的文件在程序运行时编译到应用程序之中,在程序运行时可以使用Resources.getXML()方法获取。
12. res\anim:用于定义动画对象;13. bin:生成apk的文件夹。
)8、常用xml属性及属性值的意思,如a ndroid:layout_width 指定组件布局宽度layout_height指定组件布局高度android:text 指定控件当中显示的文字android:hint 来设置当EditText内容为空时显示的文本,这个文本只在EditText为空时显示,你输入字符的时候就消失了,android:autoText 如果设置,将自动执行输入值的拼写纠正android:textSize 指定控件当中字体的大小wrap_content表示根据控件中的内容来确定,也就是说,在满足完全显示控件内容的情况下,把宽度和高度设置为最小。
fill_parent 表示尽可能地充满父控件的空间,如果当前控件是最上层,就是充满整个屏幕9、从当前Activity启动另一个Activity,可以使用哪两种方法?有什么区别?(显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。
隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。
)10、Intent 的作用:实现页面跳转,连接四大组件的桥梁11、ContentProvider的作用:实现应用程序之间的数据共享12、退出activity的方法(finish onstop 抛出异常强制退出)13、AlertDialog怎样创建?(new AlertDialog.builder),怎样显示?(show),设置“确认”按钮的方法setPositivebutton 设置“取消”按钮的方法setNegativeBu tton14、Service生命周期的方法:onCreate onStar t ,第一次启动时会执行什么,若已经启动了,再次启动Service会执行哪些方法(当第一次启动的时候先后调用onCreate()和onStart()方法,如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法)15、Service的两种启动方式分别对应哪两个方法?停止呢?(有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。