2018-2019-2 20189205《移動平臺應用開發實踐》第十週做業

Android學習

文件操做

Android文件的操做和java在pc環境下的操做並沒有二致,不過Android提供了不一樣於pc的訪問文件系統根路徑的api,同時對一個應用的私有文件作了統一的管理。java

內部存儲internal storage

內部存儲不是內存,內部存儲位於系統中很特殊的一個位置,當想將文件存儲於內部存儲中,那麼文件默認只能被本應用訪問到,且一個應用所建立的全部文件都在和應用包名相同的目錄下。也就是說應用建立於內部存儲的文件,與這個應用是關聯起來的。當一個應用卸載以後,內部存儲中的這些文件也被刪除。從技術上來說若是在建立內部存儲文件的時候將文件屬性設置成可讀,其餘app可以訪問本身應用的數據,前提是他知道這個應用的包名,若是一個文件的屬性是私有(private),那麼即便知道包名其餘應用也沒法訪問。 內部存儲空間十分有限,於是顯得難得,另外,它也是系統自己和系統應用程序主要的數據存儲所在地,一旦內部存儲空間耗盡,手機也就沒法使用了。因此對於內部存儲空間,咱們要儘可能避免使用。android

外部存儲external storage

最容易混淆的是外部存儲,若是說pc上也要區分出外部存儲和內部存儲的話,那麼自帶的硬盤算是內部存儲,U盤或者移動硬盤算是外部存儲,所以咱們很容易帶着這樣的理解去看待安卓手機,認爲機身固有存儲是內部存儲,而擴展的T卡是外部存儲。sql

全部的安卓設備都有外部存儲和內部存儲,這兩個名稱來源於安卓的早期設備,那個時候的設備內部存儲確實是固定的,而外部存儲確實是能夠像U盤同樣移動的。可是在後來的設備中,不少中高端機器都將本身的機身存儲擴展到了8G以上,他們將存儲在概念上分紅了"內部internal" 和"外部external" 兩部分,但其實都在手機內部。因此無論安卓手機是否有可移動的sdcard,他們老是有外部存儲和內部存儲。最關鍵的是,咱們都是經過相同的api來訪問可移動的sdcard或者手機自帶的存儲(外部存儲)。數據庫

外部存儲雖然概念上有點複雜,但也很好區分,你把手機鏈接電腦,能被電腦識別的部分就必定是外部存儲。api

數據庫操做

Android中進行數據庫操做,須要涉及到以下幾個類:app

1)SQLiteOpenHelper:函數

在android.database.sqlite包下,這是一個抽象的幫助類,用於管理數據庫的建立及版本維護操做。學習

咱們在須要獲取該類的對象時,須要自定義類繼承自SQLiteOpenHelper類,並實現其中的onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int),能夠選擇性地實現 onOpen(SQLiteDatabase)。這個類會自動幫助咱們在須要時打開數據庫,在不存在時建立數據庫,在必要時更新數據庫。code

經常使用方法:sqlite

public ClassName(Context context, String name, CursorFactory factory, int version)

構造函數的參數說明:

context:應用的上下文對象

name:要操做的數據庫的名稱

factory:cursor工廠類對象,通常指定爲null

version:數據庫的版本號,必須大於等於1,因爲控制數據庫的升級。

2)SQLiteDatabase:

經過SQLiteOpenHelper對象獲取SQLiteDatabase對象後,即可以調用SQLiteDatabase類的相關方法進行數據庫的增刪改查操做了。

該類的經常使用方法有:

  • execSQL()方法用於執行SQL語句,能夠用於執行不須要返回值的一些數據庫操做。
  • rawQuery()方法通常被用於執行須要返回值的查詢操做,查詢的結果保存在Cursor對象中。
    除了直接執行SQL語句進行數據庫操做的方法以外,該類還封裝幾個更易用的增刪改查方法。
  • insert()方法,用於向數據庫中插入數據,參數說明:
  • delete()方法,用於刪除表中的記錄,參數說明:
  • update()方法,用於執行表中記錄的更新操做,參數說明:
  • query()記錄查詢方法,最簡單的一個重載形式也有七個參數,都是select中的各個字句部分,如where子句部分,group by子句部分,having,order by等。參數說明:
  • isOpen()判斷數據庫是否已打開。
  • endTransaction()方法用於關閉事務,若事務標記成功,則提交事務操做,不然,則回滾失敗的事務操做。
相關文章
相關標籤/搜索