android期末總結新_第1頁
android期末總結新_第2頁
android期末總結新_第3頁
android期末總結新_第4頁
android期末總結新_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、填空1. Android的四大組件是哪些。它們的作用。答:Activity service Content Provider BroadCastReceiverActivity是Android程序與用戶交互的窗口,是Android構造塊中最基本的一種,它需要為保持各界面的狀態(tài),做很多持久化的事情,妥善管理生命周期以及一些跳轉邏輯。Service是后臺服務于Activity,封裝有一個完整的功能邏輯實現(xiàn),接受上層指令,完成相關的事物,定義好需要接受的Intent提供同步和異步的接口。Content Provider:是Android提供的第三方應用數(shù)據(jù)的訪問方案,可以派生Co

2、ntent Provider類,對外提供數(shù)據(jù),可以像數(shù)據(jù)庫一樣進行選擇排序,屏蔽內(nèi)部數(shù)據(jù)的存儲細節(jié),向外提供統(tǒng)一的接口模型,大大簡化上層應用,對數(shù)據(jù)的整合提供了更方便的途徑。BroadCast Receiver:接受一種或者多種Intent作觸發(fā)事件,接受相關消息,做一些簡單處理,轉換成一條Notification,統(tǒng)一了Android的事件廣播模型2安卓項目的目錄結構,命名及含義。· src源文件:使用java語言編寫的代碼,包括各種Activity的實現(xiàn)。 · R.java:由eclipse自動生成,包含了應用程序所使用到的資源ID。 ·

3、Android library:Android庫文件。 · assets:放置多媒體文件等。 · res:應用程序所需的資源文件,如圖標,動畫,顏色等。 · drawable:圖片資源 · layout:描述了Activity的布局。 · values:定義字符串,顏色等 · Android Manifest.xml:應用程序的配置文件。在該文件中聲明應用程序的名稱,使用到的Activity,Service,Receive,權限等。AndroidManfest.xml分析manifest根節(jié)點,描述了package中所有的內(nèi)容xmln

4、s:android包含命名空間的聲明。xmlns:android=http:/schemas.Android中各種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)Package聲明應用程序包application包含package中application級別組件聲明的根節(jié)點。此元素也可包含application的一些全局和默認的屬性,如標簽、icon、主題、必要的權限,等等。一個manifest能包含零個或一個此元素(不能大余一個)android:icon應用程序圖標android:label應用程序名字Activity用來與用戶交互的主要工具。Activity是用戶打開一個應用程序的初始頁面

5、,大部分被使用到的其他頁面也由不同的activity所實現(xiàn),并聲明在另外的activity標記中。注意,每一個activity必須有一個<activity>標記對應,無論它給外部使用或是只用于自己的package中。如果一個activity沒有對應的標記,你將不能運行它。另外,為了支持運行時查找Activity,可包含一個或多個<intent-filter>元素來描述activity所支持的操作android:name應用程序默認啟動的activityintent-filter聲明了指定的一組組件支持的Intent值,從而形成了IntentFilter。除了能在此元素下

6、指定不同類型的值,屬性也能放在這里來描述一個操作所需的唯一的標簽、icon和其他信息action組件支持的Intent actioncategory組件支持的Intent Category。這里指定了應用程序默認啟動的activityuses-sdk該應用程序所使用的sdk版本相關3activity中onCreate()方法的用法Activity中有一個名稱叫onCreate的方法。該方法是在Activity創(chuàng)建時被系統(tǒng)調(diào)用,是一個Activity生命周期的開始。4android中是如何訪問布局的。LinearLayout線性布局;AbsoluteLayout絕對布局;TableLayout表

7、格布局;RelativeLayout相對布局;FrameLayout幀布局;LinearLayout(線性布局)提供了控件水平垂直排列的模型,同時可以通過設置子控件的weight布局參數(shù)控制各個控件在布局中的相對大小。水平(vertical)垂直(horizontal)AbsoluteLayout(坐標布局)可以讓子元素指定準確的x/y坐標值,并顯示在屏幕上。(0, 0)為左上角,當向下或向右移動時,坐標值將變大。AbsoluteLayout沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。我們通常不推薦使用AbsoluteLayout,除非你有正當理由要使用它,因為它使界面代碼太過剛性,以至于

8、在不同的設備上可能不能很好地工作。 Android:layout_x/layout_y=”56px”確定控件位置RelativeLayout(相對布局)允許子元素指定他們相對于其它元素或父元素的位置(通過ID指定)。因此,你可以以右對齊,或上下,或置于屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那么相對于這個元素的其它元素將以屏幕中央的相對位置來排列。如果使用XML來指定這個layout,在你定義它之前,被關聯(lián)的元素必須定義。FrameLayout(單幀布局)是最簡單的一個布局對象。它被定制為你屏幕上的一個空白備用區(qū)域,之后你可以在其中填充一個單一對

9、象 比如,一張你要發(fā)布的圖片。所有的子元素將會固定在屏幕的左上角;你不能為FrameLayout中的一個子元素指定一個位置。后一個子元素將會直接在前一個子元素之上進行覆蓋填充,把它們部份或全部擋?。ǔ呛笠粋€子元素是透明的)。TableLayout(表格布局)以行列的形式管理子控件,每一行為一個TableRow的對象,TableRow也可以添加子控件android:collapseColumns=“n”隱藏TableLayout里面的TableRow的列nandroid:stretchColumns=“n”設置列n為可延伸的列android:shrinkColumns=“n”設置列n為可收縮的

10、列5main.xml中的一段代碼,每一項的含義android:id /這個xml屬性是繼承自android.view類的xml屬性。它為framelayout提供一個唯一識別符號,之后,程序要用到它時可以用View.findViewById() 或Activity.findViewById()來找到它。 android:layout_width: 布局寬 android:layout_height: 布局高 /它們的取值是fill_parent或wrap_content。 fill_parent :在x軸或則y軸上充滿父容器的空間。 wrap_content :framelayout里的元素有

11、多少寬高就多少寬高, /這兩個屬性都是定義在android.widget.FrameLayout的嵌套類android.widget.FrameLayout.LayoutParams里。 android:background:背景 android:foreground :前景 6數(shù)據(jù)存儲的五種方法分別是什么?答:1 使用SharedPreferences存儲數(shù)據(jù);  2 文件存儲數(shù)據(jù);3 SQLite數(shù)據(jù)庫存儲數(shù)據(jù); 4 使用ContentProvider存儲數(shù)據(jù); 5 網(wǎng)絡存儲數(shù)據(jù);7文件保存操作,代碼怎么寫,SDk讀寫權限?答:文

12、件存儲數(shù)據(jù)文件存儲方式是一種較常用的方法,在Android中讀取/寫入文件的方法,與 Java中實現(xiàn)I/O的程序是完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取設備上的文件。具體實例如下:String fn = “moandroid.log”;FileInputStream fis = openFileInput(fn);FileOutputStream fos = openFileOutput(fn,Context.MODE_PRIVATEandr

13、oid中關于對文件SD卡以及手機本身內(nèi)存中建立文件保存等操作<!- 在SDCard中創(chuàng)建與刪除文件權限 -><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!- 往SDCard寫入數(shù)據(jù)權限 -><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 使用File進行存儲操作主要使用到以下的:pu

14、blic abstract FileInputStream openFileInput (String name)這個主要是打開文件,返回FileInputStream:public abstract FileOutputStream openFileOutput (String name, int mode)這個主要是寫入文件,如果該文件不存在,直接進行創(chuàng)建,返回FileOutputStreamMode(主要有以下的四種的模式)MODE_APPEND  /在尾部追加MODE_PRIVATE /私有MODE_WORLD_READABLE /可讀MODE_WORLD_WRITEABLE

15、 /可寫:FileInputStream(獲取文件輸入流)與FileOutputStream (獲取文件輸出流)這兩類在JavaIO 操作中很常見接下來進行操作 保存成功之后講文件保存在當前應該程序的包名下的files/(可以改變存儲的其他路徑)源代碼如下:java view plaincopyprint?1. package com.jiangqq.file;  2.   3. import java.io.FileInputStream;  4. import java.io.FileOutputSt

16、ream;  5.   6. import android.app.Activity;  7. import android.os.Bundle;  8. import android.view.View;  9. import android.view.View.OnClickListener;  10. import android.widget.Button;  11. import and

17、roid.widget.EditText;  12. import android.widget.Toast;  13.   14. public class FileAcitivy extends Activity  15.   16.     private Button bt1, bt2;  17.     pr

18、ivate EditText et1, et2;  18.   19.     private static final String FILENAME = "temp_file.txt"  20.   21.     Override  22.     public&

19、#160;void onCreate(Bundle savedInstanceState)   23.         super.onCreate(savedInstanceState);  24.         setContentView(R.layout.main);  25.      

20、   bt1 = (Button) this.findViewById(R.id.bt1);  26.         bt2 = (Button) this.findViewById(R.id.bt2);  27.         et1 = (EditText) this.f

21、indViewById(R.id.et1);  28.         et2 = (EditText) this.findViewById(R.id.et2);  29.         bt1.setOnClickListener(new OnClickListener()   30.   31. 

22、60;           Override  32.             public void onClick(View v)   33.             

23、;    write(et1.getText().toString();  34.                 Toast.makeText(FileAcitivy.this, "文件寫入成功", Toast.LENGTH_LONG)  35.       

24、;                  .show();  36.               37.         );  38.   &

25、#160;     bt2.setOnClickListener(new OnClickListener()   39.   40.             Override  41.             public

26、0;void onClick(View v)   42.                 et2.setText(read();  43.                 Toast.makeText(File

27、Acitivy.this, "文件讀出成功", Toast.LENGTH_LONG)  44.                         .show();  45.          

28、     46.         );  47.       48.   49.     / 讀文件方法   50.     private String read()   51.   &#

29、160;     try   52.             FileInputStream inputStream = openFileInput(FILENAME);  53.             byte b&

30、#160;= new byteinputStream.available();  54.             inputStream.read(b);  55.             return new String(b);  56.  &#

31、160;       catch (Exception e)   57.           58.         return null;  59.       60.   61. &#

32、160;   / 寫文件   62.     private void write(String content)   63.         try   64.             FileOutputS

33、tream fos = openFileOutput(FILENAME, MODE_APPEND);  65.             fos.write(content.getBytes();  66.             fos.close();  6

34、7.          catch (Exception e)   68.           69.       70.   文件可以保存在手機內(nèi)存中,也可以保存在SD卡上面,保存在SD卡上要申請讀寫SDS卡權限,權限如下:<uses-permission android

35、:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>保存在手機上html view plaincopyprint?1. public void saveFile(String fileName,String contentStr) throws IOException  2.     FileOutputStream fileOutputStre

36、am=context.openFileOutput(fileName, Context.MODE_PRIVATE);  3.     fileOutputStream.write(contentStr.getBytes();  4.   public void saveFile(String fileName,String contentStr) throws IOExceptionFileOutputStream fileOutputStream=context.openFileOu

37、tput(fileName, Context.MODE_PRIVATE);fileOutputStream.write(contentStr.getBytes();保存在SD卡上html view plaincopyprint?1. public void savefile2SD(String fileNameStr, String contentStr) throws FileNotFoundException   2.     File fi

38、le=new File(Environment.getExternalStorageDirectory(), fileNameStr);  3.     OutputStream oStream=new FileOutputStream(file);  4.     byte data=contentStr.getBytes();  5.     try &

39、#160; 6.         oStream.write(data);  7.      catch (IOException e)   8.         / TODO Auto-generated catch block  9.  

40、;       e.printStackTrace();  10.       11.     finally  12.         try   13.           &

41、#160; oStream.close();  14.          catch (IOException e)   15.             / TODO Auto-generated catch block  16.  

42、60;          e.printStackTrace();  17.           18.           19.       20.   關于界面,以前見到淘寶上面輸入框里面有提示

43、文字,然后鼠標點進去后文字消失,等待用戶輸入的效果html view plaincopyprint?1. <EditText  2.     android:id="+id/fileNameID"  3.     android:layout_width="match_parent"  4.     android:layout_height="wrap_con

44、tent"   5.     android:hint="請輸入文件名稱">   <EditText android:id="+id/fileNameID" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入文件名稱">android:hint=&qu

45、ot;請輸入文件名稱"-就是這樣一行代碼還有就是要注意一下:在模擬器上面如果輸入中文的話,那么保存后就有亂碼,保存文件后導出到PC的話會發(fā)現(xiàn)找不到該文件8.android中數(shù)據(jù)庫事物怎么定義?答:實現(xiàn)Android數(shù)據(jù)庫事務非常簡單,只需要使用SQLiteDatabase類的三個方法即可。beginTransaction();setTransactionSuccessful();endTransaction();當調(diào)用endTransaction()時,所有從beginTransaction()開始的操作都會被提交。一個簡單的數(shù)據(jù)庫事務操作如下所示:1. mDatabase.begi

46、nTransaction();  2. try  3.   /在這里執(zhí)行多個數(shù)據(jù)庫操作  4.   /執(zhí)行過程中可能會拋出異常  5.   mDatabase.setTransactionSuccessful();  6.   /在setTransactionSuccessful和endTransaction之間不進行任何數(shù)據(jù)庫操作  7.   catch(Exception&

47、#160;e)  8.     /當數(shù)據(jù)庫操作出現(xiàn)錯誤時,需要捕獲異常,結束事務  9.     mDatabase.endTransaction();  10.     throw e;  11.     12.   /當所有操作執(zhí)行完成后結束一個事務  13.   mDatabase.

48、endTransaction();  14.   9.android中網(wǎng)絡讀取的幾種方式是什么?答:get post HttpClient HttpURLConnection:包中的HttpURLConnection類Get方式。1. / Get方式請求   2. public static void requestByGet() throws Exception   3.     String 

49、path = "4.     / 新建一個URL對象   5.     URL url = new URL(path);  6.     / 打開一個HttpURLConnection連接   7.     HttpURLConnection urlConn =

50、0;(HttpURLConnection) url.openConnection();  8.     / 設置連接超時時間   9.     urlConn.setConnectTimeout(5 * 1000);  10.     / 開始連接   11.     urlConn.connect();&#

51、160; 12.     / 判斷請求是否成功   13.     if (urlConn.getResponseCode() = HTTP_200)   14.         / 獲取返回的數(shù)據(jù)   15.         b

52、yte data = readStream(urlConn.getInputStream();  16.         Log.i(TAG_GET, "Get方式請求成功,返回數(shù)據(jù)如下:");  17.         Log.i(TAG_GET, new String(data, "UTF-8&

53、quot;);  18.      else   19.         Log.i(TAG_GET, "Get方式請求失敗");  20.       21.     / 關閉連接   22.    

54、0;urlConn.disconnect();  23.   Post方式:java view plaincopyprint?1. / Post方式請求   2. public static void requestByPost() throws Throwable   3.     String path = "4.     

55、/ 請求的參數(shù)轉換為byte數(shù)組   5.     String params = "id=" + URLEncoder.encode("helloworld", "UTF-8")  6.             + "&pwd="

56、 + URLEncoder.encode("android", "UTF-8");  7.     byte postData = params.getBytes();  8.     / 新建一個URL對象   9.     URL url = new URL(pat

57、h);  10.     / 打開一個HttpURLConnection連接   11.     HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();  12.     / 設置連接超時時間   13.     u

58、rlConn.setConnectTimeout(5 * 1000);  14.     / Post請求必須設置允許輸出   15.     urlConn.setDoOutput(true);  16.     / Post請求不能使用緩存   17.     urlConn.setUseCaches(false)

59、;  18.     / 設置為Post請求   19.     urlConn.setRequestMethod("POST");  20.     urlConn.setInstanceFollowRedirects(true);  21.     / 配置請求Content-Type   22

60、.     urlConn.setRequestProperty("Content-Type",  23.             "application/x-www-form-urlencode");  24.     / 開始連接   25.    &#

61、160;urlConn.connect();  26.     / 發(fā)送請求參數(shù)   27.     DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream();  28.     dos.write(postData);  29.    

62、 dos.flush();  30.     dos.close();  31.     / 判斷請求是否成功   32.     if (urlConn.getResponseCode() = HTTP_200)   33.         / 獲

63、取返回的數(shù)據(jù)   34.         byte data = readStream(urlConn.getInputStream();  35.         Log.i(TAG_POST, "Post請求方式成功,返回數(shù)據(jù)如下:");  36.      

64、60;  Log.i(TAG_POST, new String(data, "UTF-8");  37.      else   38.         Log.i(TAG_POST, "Post方式請求失敗");  39.       4

65、0.     org.apache.http包中的HttpGet和HttpPost類Get方式:java view plaincopyprint?1. / HttpGet方式請求   2. public static void requestByHttpGet() throws Exception   3.     String path = "4.  &#

66、160;  / 新建HttpGet對象   5.     HttpGet httpGet = new HttpGet(path);  6.     / 獲取HttpClient對象   7.     HttpClient httpClient = new DefaultHttpClient();&#

67、160; 8.     / 獲取HttpResponse實例   9.     HttpResponse httpResp = httpClient.execute(httpGet);  10.     / 判斷是夠請求成功   11.     if (httpResp.getStatusLine().get

68、StatusCode() = HTTP_200)   12.         / 獲取返回的數(shù)據(jù)   13.         String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");  14. 

69、60;       Log.i(TAG_HTTPGET, "HttpGet方式請求成功,返回數(shù)據(jù)如下:");  15.         Log.i(TAG_HTTPGET, result);  16.      else   17.     

70、0;   Log.i(TAG_HTTPGET, "HttpGet方式請求失敗");  18.       19.   Post方式:java view plaincopyprint?1. / HttpPost方式請求   2. public static void requestByHttpPost() throws Exception  

71、; 3.     String path = "4.     / 新建HttpPost對象   5.     HttpPost httpPost = new HttpPost(path);  6.     / Post參數(shù)   7.    

72、 List<NameValuePair> params = new ArrayList<NameValuePair>();  8.     params.add(new BasicNameValuePair("id", "helloworld");  9.     params.add(new BasicNameValuePair(&

73、quot;pwd", "android");  10.     / 設置字符集   11.     HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);  12.     / 設置參數(shù)實體   13.  

74、;   httpPost.setEntity(entity);  14.     / 獲取HttpClient對象   15.     HttpClient httpClient = new DefaultHttpClient();  16.     / 獲取HttpResponse實例   17. 

75、0;   HttpResponse httpResp = httpClient.execute(httpPost);  18.     / 判斷是夠請求成功   19.     if (httpResp.getStatusLine().getStatusCode() = HTTP_200)   20.     

76、;    / 獲取返回的數(shù)據(jù)   21.         String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");  22.         Log.i(TAG_HTTPGET, "Http

77、Post方式請求成功,返回數(shù)據(jù)如下:");  23.         Log.i(TAG_HTTPGET, result);  24.      else   25.         Log.i(TAG_HTTPGET, "HttpPost方式請求失敗"); 

78、 26.       27.   簡答.簡述Android平臺提供了那些數(shù)據(jù)存儲方法。 答:Preferences、     File、 SQLite、 ContentProvider,  網(wǎng)絡 Android整體認知(安卓系統(tǒng)結構,項目的運行)答:圖我們可以從整體上有個大致的了解(圖片來源互聯(lián)網(wǎng)):              

79、                從上圖中可以看出,Android系統(tǒng)架構為四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統(tǒng)運行庫層以及Linux內(nèi)核層,分別介紹如下:    1)應用程序層         Android平臺不僅僅是操作系統(tǒng),也包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是用Java語言編寫的,并且這些應用程序都是可以被開發(fā)

80、人員開發(fā)的其他應用程序所替換,這點不同于其他手機操作系統(tǒng)固化在系統(tǒng)內(nèi)部的系統(tǒng)軟件,更加靈活和個性化。    2)應用程序框架層         應用程序框架層是我們從事Android開發(fā)的基礎,很多核心應用程序也是通過這一層來實現(xiàn)其核心功能的,該層簡化了組件的重用,開發(fā)人員可以直接使用其提供的組件來進行快速的應用程序開發(fā),也可以通過繼承而實現(xiàn)個性化的拓展。         a) Activity Manager(活動管理器)  

81、;            管理各個應用程序生命周期以及通常的導航回退功能         b) Window Manager(窗口管理器)              管理所有的窗口程序         c)  Content Provider(內(nèi)容提供器)         

82、60;    使得不同應用程序之間存取或者分享數(shù)據(jù)         d) View System(視圖系統(tǒng))              構建應用程序的基本組件         e) Notification Manager(通告管理器)              使得應用程序可以在狀態(tài)欄中顯示自定義

83、的提示信息         f) Package Manager(包管理器)               Android系統(tǒng)內(nèi)的程序管理         g)Telephony Manager(電話管理器)              管理所有的移動設備功能        

84、; h)Resource Manager(資源管理器)              提供應用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等         i)Location Manager(位置管理器)             提供位置服務         j)XMPP Service(XMPP服務) &

85、#160;           提供Google Talk服務       3)系統(tǒng)運行庫層         從圖中可以看出,系統(tǒng)運行庫層可以分成兩部分,分別是系統(tǒng)庫和Android運行時,分別介紹如下:         a)系統(tǒng)庫              系統(tǒng)庫是應用程序框架的支撐,是連接應用程序框架層與Linux內(nèi)核層的重要紐帶。其主要分為如下幾個:              Ø  Surface Manager: 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論