1.如何刪除SQLite中表的個別字段android
參考回答: SQLite數據庫只容許增長字段而不容許修改和刪除表字段,只能建立新表保留原有字段,刪除原表
2.使用SQLite時會有哪些優化操做?數據庫
參考回答: 使用事務作批量操做 及時關閉Cursor,避免內存泄露 耗時操做異步化:數據庫的操做屬於本地IO耗時操做,建議放入異步線程中處理 ContentValues的容量調整:ContentValues內部採用HashMap來存儲Key-Value數據,ContentValues初始容量爲8,擴容時翻倍。所以建議對ContentValues填入的內容進行估量,設置合理的初始化容量,減小沒必要要的內部擴容操做 使用索引加快檢索速度:對於查詢操做量級較大、業務對查詢要求較高的推薦使用索引
3.Android中進程和線程的關係? 區別?微信
參考回答: 線程是CPU調度的最小單元,同時線程是一種有限的系統資源 進程通常指一個執行單元,在PC和移動設備上一個程序或則一個應用 通常來講,一個App程序至少有一個進程,一個進程至少有一個線程(包含與被包含的關係), 通俗來說就是,在App這個工廠裏面有一個進程,線程就是裏面的生產線,但主線程(主生產線)只有一條,而子線程(副生產線)能夠有多個 進程有本身獨立的地址空間,而進程中的線程共享此地址空間,均可以併發執行
4.如何開啓多進程 ? 應用是否能夠開啓N個進程 ?併發
參考回答: 在AndroidMenifest中給四大組件指定屬性android:process開啓多進程模式 在內存容許的條件下能夠開啓N個進程
5.爲什麼須要IPC?多進程通訊可能會出現的問題?異步
參考回答: 全部運行在不一樣進程的四大組件(Activity、Service、Receiver、ContentProvider)共享數據都會失敗,這是因爲Android爲每一個應用分配了獨立的虛擬機,不一樣的虛擬機在內存分配上有不一樣的地址空間,這會致使在不一樣的虛擬機中訪問同一個類的對象會產生多份副本。好比經常使用例子(經過開啓多進程獲取更大內存空間、兩個或則多個應用之間共享數據、微信全家桶) 通常來講,使用多進程通訊會形成以下幾方面的問題 靜態成員和單例模式徹底失效:獨立的虛擬機形成 線程同步機制徹底實效:獨立的虛擬機形成 SharedPreferences的可靠性降低:這是由於Sp不支持兩個進程併發進行讀寫,有必定概率致使數據丟失 Application會屢次建立:Android系統在建立新的進程會分配獨立的虛擬機,因此這個過程其實就是啓動一個應用的過程,天然也會建立新的Application