1.什么是Android?

Android是一个以Linux为基础的开放源代码移动设备操作系统,

由Google领导和开发,目前世界上市场占有率最高,

它的创始人是Andy Rubin。


2.请说一下Android的系统架构(Android Architecture Layers)。

  • Android的系统架构有四层:Applications、FrameWork、Libraries、Linux Kernel。

  • "Applications层"就是平时我们用手机时看到的那些已经装在手机上的应用,比如联系人、短信、日历这些。

  • "FrameWork层"用于提供开发应用时所需要用到的API,包含ActivityManager、Content Providers、Resource Manager等等服务。

  • "Libraries层"包含两个方面,分别是Native Libraries 和 Android Runtime。Native Libraries通过一些C/C++库为Android系统提供SQLite、OpelGL 3D绘图、Webkit浏览器内核等等主要特性的支持,供Android系统的各个组件使用,这样开发者就可以在FrameWork层使用这些特性;Android Runtime提供一些核心库(Core Libraries),这样开发者就可以用Java语言来编写Android应用。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己独立的进程中。

  • "Linux Kernel层"用于为Android设备的各种硬件提供底层驱动,包含Display Driver、Camera Driver、USB Driver、Power Management等等。


关于Android的系统架构,可以参考两张图:

wKioL1XBhrOxx4urAAUzC6z31Ww861.jpg

wKiom1XBhLvwW1ofAAJ7CJUIR5Q189.jpg


3.什么是Activity?请说一下Activity的基本用法。


Activity是一种包含用户界面的组件,主要用于和用户进行交互,

当Android应用运行的时候,它的Activity一般会充满把手机屏幕的空间都占满,

不过有的Activity也会以浮窗或者嵌入到其他Activity的形式呈现。


说起Activity的基本用法,我的印象就是以下内容:

  • 手动创建Activity:新建Android Project - 在向导中让系统不要帮忙创建Activity - 在src目录的包中新建一个继承Activity类的子类 - 重写onCreate方法 - 在res/layout目录中创建自己的视图文件activity_main.xml - 在Activity中setContentView(R.id.???) - 最后在AndroidManifest.xml文件中注册这个Activity - 运行应用即可

  • 绑定自定义视图:调用setContentView(),传入一个布局文件的id作为参数,即可给当前的Activity加载一个布局

  • 在当前Activity中启动另一个Activity:使用 startActivity(new Intent(当前Activity.this,目标Activity.class)); 启动另一个Activity


4.请说一下Activity的生命周期。


参考连接:官方Activity的描述


Android系统用"栈"来管理应用的Activity,栈是后进先出的数据结构,

当启动一个新的Activity它就会变成当前所要呈现的Activity(running Activity)而入到栈顶,

前一个Activity就会在它的下层,当例如按下Back键这个新的Activity出栈后,

前一个Activity又会变回running Activity回到栈顶。


一个Activity在它的生命周期中最多会有四种状态:运行(running)、暂停(paused)、停止(stopped)、被干掉(销毁,destroyed)。

  1. 正常显示出来的、用户看到的Activity就是running,也就是在栈顶的Activity;

  2. 如果突然来了个短信,以小弹窗的形式把running的Activity遮住了,失去了焦点,这时那个Activity就会变为paused;

  3. 如果在running的Activity点击一个按钮后,启动了一个新的Activity,彻底覆盖了在栈顶running的这个Activity,它就会变为stopped;

  4. 如果Activity处于stopped或paused状态,而系统又很需要内存,系统就有可能根据需要终止这样的Activity,就会被干掉。

备注:最后一个状态因为官方文档没有一个很明确的字眼描述,只是说是这样的情况,所以我自己理解为被干掉吧。


关于Activity的生命周期有七个方法贯穿其中:

publicclassActivityextendsApplicationContext{protectedvoidonCreate(BundlesavedInstanceState);protectedvoidonStart();protectedvoidonRestart();protectedvoidonResume();protectedvoidonPause();protectedvoidonStop();protectedvoidonDestroy();}


在Activity显示的过程依次会调用onCreate() - onStart() - onResume(),

销毁的过程依次会调用onPause() - onStop()- onDestroy()。

示意图如下:

wKiom1XBxbHQE-HGAAH7OPcwymw002.jpg


5.说一下Activity的生命周期七个方法的作用。


6.说一下Activity的启动模式。































更多相关文章

  1. android SDK系统图片资源的路径。
  2. Android 调用系统的拍相程序进行录像
  3. android答题系统(二):实现主界面入口和查询数据
  4. Android入门篇一:Android Activity生命周期
  5. Android 系统 图标的使用
  6. 深入解读Linux与Android的相互关系& Android消息处理系统的原理
  7. 《Android和PHP开发最佳实践》一2.2 Android系统框架
  8. Day1.1-Android简介之发展史、操作系统、系统框架介绍
  9. Android GUI系统框架介绍

随机推荐

  1. Android 4.0 Launcher2源码分析——主布
  2. android4.4 Launcher主菜单界面同样采用
  3. Android-给图片添加暗影
  4. Android中SQLite应用详解(很详细)
  5. Android(安卓)-- The Manifest File
  6. android代码库之执行Shell命令或者脚本
  7. Android中Activity组件详解
  8. Android(安卓)EditText截获与监听输入事
  9. Android(安卓)图片大小超过预算的VM:java.
  10. Android(安卓)TimeUtil