凌宇 Android之路 知識備忘錄

2021-07-10 01:09:01 字數 2821 閱讀 2872

沒有什麼想寫的,學了android也有小一年了,一些知識點記了又忘,就寫寫吧,免得以後忘記了。

1,android系統架構:linnx核心層,系統執行庫層,應用框架層,應用層(我們一般玩的就是這一層)

2,activity啟動模式:

2.1 standard:每次都會重新new乙個activity,不管是不是存在

2.2 singtop :當這個activity已經存在並且存在於棧頂上的時候,就不用重新new,當不是位於棧頂的時候,則會重新new

2.3 singtask:啟動是,會檢查棧內是不是存在著這個activity,如果存在,就會直接使用這個例項,並且將上面的所有activity全部出棧;如果不存在,就重新new乙個

2.4 singleinstance:指定為這個啟動模式的activity啟用乙個新的返回棧來管理這個activity,其實一般是用於在本程式與其他程式共享乙個activity的時候。

3,android的資料儲存方式:

3.1 檔案儲存:檔案儲存是用於context提供的方法,主要是openfileoutput 和openfileinput兩個方法,儲存於/data/data//files/這個路徑上。

3.2 sharedpreference:

/**

* 建立sp的方法

* 資料都會儲存於/data/data//shared_prefs/

*/private void opensp()

得到了 sharedpreferences物件之後, 就可以開始向 sharedpreferences檔案中儲存資料了,

主要可以分為三步實現。

①, 呼叫 sharedpreferences物件的 edit()方法來獲取乙個 sharedpreferences.editor 物件。

②, 向 sharedpreferences.editor 物件中新增資料,比如新增乙個布林型資料就使用

putboolean 方法,新增乙個字串則使用 putstring()方法,以此類推。

③, 呼叫 commit()方法將新增的資料提交,從而完成資料儲存操作

工具類可以去worldshow或者p2p的utils包提取...已經封了很多了

3.3 資料庫儲存

/**

* sqliteopenhelper是個抽象類,所以我們必須自己去繼承並實現方法

* 有2個抽象方法,oncreate()和onupgrade()兩個方法

* 有2個重要方法,getwritabledatabase()和getreadabledatabase();返回sqlitedatabase物件

* 這2個方法都可以建立或開啟乙個現有的資料庫(如果資料庫已經存在),並返回乙個可以對資料進行讀寫操作

* 的物件

* 而不同的是:當資料庫不可以寫入的時候(比如磁碟空間已經滿了的情況下),getreadabledatabase()將會以唯讀的

* 方式去開啟資料庫,而getwritabledatabase()會乾脆直接報錯

* 資料庫一般是存在/data/data//databases/ 資料夾

*/public class lysqlhelper extends sqliteopenhelper

/*** 我們一般是用這個構造方法來進行操作的

** @param context 上下文,這個不說了

* @param name    資料庫的名字

* @param factory 允許我們在查詢資料的時候返回乙個自定義的 cursor,一般都是傳入null

* @param version 這個表示資料庫的版本號

*/public lysqlhelper(context context, string name, sqlitedatabase.curso***ctory factory, int version)

@override

public void oncreate(sqlitedatabase sqlitedatabase)

@override

public void onupgrade(sqlitedatabase sqlitedatabase, int i, int i1)

}

3,內容提供者

// 以下是內容提供者的**塊

/*** 內容提供者主要在不同的應用程式之中實現資料共享的功能,既能拿到資料,又能保證資料的安全性

* 目前是都使用這個方法從其他應用程式中拿資料

* 目前內容提供者主要有2中用法:

* ·1,使用現有的內容提供者來讀取和操作相應程式中的資料

* ·2,建立自己的內容提供者給我們的程式的資料提供對外的訪問介面

* * 一般使用contentresolve類來進行crud操作,

* insert(); 插入操作

* update(); 更新擦做

* delete(); 刪除操作

* query(); 查詢操作

*/private void usecontentprovider()

} catch (exception e) finally }}

4,專案備忘錄:

防止輸入法把底部的選單欄頂上去的做法:

android:windowsoftinputmode="adjustpan|statehidden"
5,退出整個應用:

宇視科技android面試 宇視科技初面

2018年10月15日下午兩點,我準時參加杭州電子科技大學的宇視科技面試,我投遞的崗位是自動化測試開發工程師。一開始,面試官讓我做自我介紹,我簡單說了自己的情況。1.他問了我自動化測試開發和測試的區別,我回答了自動化開發主要是寫測試指令碼,偏向於開發,而測試就是純粹的測試。自動化測試是一種黑盒測試的...

宇視科技android面試 宇視科技軟體筆試面試

個人收集整理 zq1 3 筆試題 筆試題目地量比較大,只有乙個小時,注意時間 題目分為 1.判斷題 選擇題填空題 程式設計題判斷和選擇題目比較基礎,但容易錯 由於題量過多,我記得不太清楚了,只把自己記得地 幾個說一下吧 判斷題 逗號運算子是最低運算子 2.合理地排放結構體地資料成員,可以節省記憶體空...

宇視科技android面試 宇視科技軟體筆試面試

讓每個人平等地提公升自我 筆試題 筆試題目的量比較大,只有乙個小時,注意時間。題目分為 1.判斷題 2.選擇題 3.填空題 4.程式設計題 判斷和選擇題目比較基礎,但容易錯。由於題量過多,我記得不太清楚了,只把自己記得的 幾個說一下吧。判斷題 1.逗號運算子是最低運算子 2.合理的排放結構體的資料成...