Skip to content

Commit

Permalink
edit android dev basic
Browse files Browse the repository at this point in the history
  • Loading branch information
JnuSimba committed Apr 8, 2017
1 parent 354bc53 commit a34395e
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions Android开发基础/Android开发基础知识.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,31 @@ APK文件其实是zip格式,但后缀名修改为APK,通过UnZip解压后,
一个Service是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
* Content Provider:ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用的数据进行增删改查。
关于共享数据,可以使用文件操作模式,通过指定文件的操作模式为Context.MODEWORLDREADABLE 或 Context.MODEWORLDWRITEABLE同样也可以对外共享数据,但是使用文件共享数据存在数据访问方式不统一的问题。而Content Provider则对外暴露了统一的接口,每个应用程序都可以通过统一的接口操作数据。
10. 常用的布局管理器:
布局管理器一般有四种:
10. 常用的布局管理器:
布局管理器一般有四种:
LinearLayout:线性布局管理器(默认),分为水平(horizontal)和垂直(vertical)两种,只能进行单行布局。
FrameLayout:所有组件放在左上角,一个覆盖一个。
TableLayout:任意行和列的表格布局管理器,其中TableRow代表一行,可以向行中增加组件。
RelativeLayout:相对布局管理器,根据最近一个组件或者顶层父组件来确定下一个组件的位置。
11. Android应用程序是用Java语言写的,通过aapt工具把编译好的java代码和应用程序所需要的所有数据、资源文件打包成Android包,及后缀为.apk的压缩文件,这个文件时发布应用程序和在移动设备上安装应用程序的媒介,是用户下载到他们设备上的文件。一个.apk文件中的所有代码属于一个应用程序。
11. Android体系结构:
官网体系结构图:
![basic](../pictures/androidbasic.gif)
![basic](../pictures/androidbasic.gif)
Android从上到下分为4层:Android应用层,Android应用框架层,Android系统运行层,Linux内核层。

12. 每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效的运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后.class通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。

13. Android Activity 生命周期:
13. Android Activity 生命周期:
生命周期图:
![basic](../pictures/androidactivity.gif)
![basic](../pictures/adnroidactivity.gif)

Resumed状态:
在这种状态下,该Activity在前台运行,用户可以与它进行交互。(有时也简称为"running"状态。)
Paused状态:
在这种状态下,该Activity被部分遮蔽(被其他在前台的半透明或不覆盖整个屏幕的活动遮住)。此状态不接受用户输入,并且不能执行任何代码。
Stopped状态:
在这种状态下,该活动是完全隐藏,不可见的,可视为存在于后台。虽然停止,活动实例和所有成员变量如状态信息将被保留,但不能执行任何代码。
14.
14.
(1)当程序第一次运行时用户会看到主Activity,主Activity可以通过启动其他的Activity进行相关操作。
(2)当启动其他的Activity时当前的Activity将会停止,新的Activity将会压入栈中,同时获取用户焦点,这时就可在这个Activity上操作了。 (3)根据栈的先进后出原则,当用户按Back键时,当前这个Activity销毁,前一个Activity重新恢复。
15. Activity 之间传递数据的几种方式:
Expand All @@ -60,12 +60,12 @@ Stopped状态:
`MyApp myApp = (MyApp)getApplication();`
(4) 使用静态变量传递数据:可以在目标的 Activity 中,声明公开的静态属性,在调用的Activity针对这个属性进行赋值,来进行数据的传递。

16. 从Activity中返回数据:  
(1) startActivity():用于启动意图。   
(2) startActivityForResult():启动意图并获取返回结果。在等待返回结果的Activity中必须实现onActivityResult方法。  
17. finish方法用来结束Activity的生命周期。  
16. 从Activity中返回数据:   
(1) startActivity():用于启动意图。   
(2) startActivityForResult():启动意图并获取返回结果。在等待返回结果的Activity中必须实现onActivityResult方法。   
17. finish方法用来结束Activity的生命周期。   

## 二、实现DEMO:
## 二、实现DEMO:
1.利用Intent在两个Activity之间传递数据:
关键代码 在源码包添加调用者和被调用者的 Activity java类:

Expand Down Expand Up @@ -147,6 +147,6 @@ public class OtherActivity extends Activity {
在Mainifest.xml程序清单中添加Activity的配置。
全部配置完毕后就完成了一个Activity通过Intent传递信息到另一个Activity的过程。
调用者:
![basic](../pictures/call1.JPG)
![basic](../pictures/call1.JPG)
被调用者:
![basic](../pictures/becall1.JPG)
![basic](../pictures/becall1.JPG)

0 comments on commit a34395e

Please sign in to comment.