- Android長(zhǎng)連接,怎么處理心跳機(jī)制夹纫。
Android 消息處理機(jī)制(Handler疾层、Looper苟径、MessageQueue矢渊、Message)
AIDL 實(shí)現(xiàn)
APP 啟動(dòng)過(guò)程
Activity 啟動(dòng)過(guò)程
-
View樹(shù)繪制流程
-
事件的傳遞機(jī)制
下拉刷新實(shí)現(xiàn)原理
你用過(guò)什么框架锰瘸,是否看過(guò)源碼,是否知道底層原理昂灵。
Android主流網(wǎng)絡(luò)請(qǐng)求開(kāi)源庫(kù)的對(duì)比Android 5.0,6.0,7.0特性
Android5.0新特性:
1.MaterialDesign設(shè)計(jì)風(fēng)格
2.支持多種設(shè)備
3.支持64位ART虛擬機(jī)
Android6.0新特性
1.動(dòng)態(tài)權(quán)限檢測(cè)機(jī)制
2.大量漂亮流暢的動(dòng)畫(huà)
3.支持快速充電的切換
4.支持文件夾拖拽應(yīng)用
5.相機(jī)新增專(zhuān)業(yè)模式
Android7.0新特性
1.分屏多任務(wù)
2.增強(qiáng)的Java8語(yǔ)言模式
3.夜間模式
4.fileProvider
- Context區(qū)別
- Activity和Service以及Application的Context是不一樣的,Activity繼承自ContextThemeWraper.其他的繼承自ContextWrapper
- 每一個(gè)Activity和Service以及Application的Context都是一個(gè)新的ContextImpl對(duì)象
- getApplication()用來(lái)獲取Application實(shí)例的避凝,但是這個(gè)方法只有在Activity和Service中才能調(diào)用的到。那么也許在絕大多數(shù)情況下我們都是在Activity或者Service中使用Application的眨补,但是如果在一些其它的場(chǎng)景管削,比如BroadcastReceiver中也想獲得Application的實(shí)例,這時(shí)就可以借助getApplicationContext()方法撑螺,getApplicationContext()比getApplication()方法的作用域會(huì)更廣一些含思,任何一個(gè)Context的實(shí)例,只要調(diào)用getApplicationContext()方法都可以拿到我們的Application對(duì)象甘晤。
- Activity在創(chuàng)建的時(shí)候會(huì)new一個(gè)ContextImpl對(duì)象并在attach方法中關(guān)聯(lián)它含潘,Application和Service也差不多。ContextWrapper的方法內(nèi)部都是轉(zhuǎn)調(diào)ContextImpl的方法
創(chuàng)建對(duì)話(huà)框傳入Application的Context是不可以的 - 盡管Application线婚、Activity遏弱、Service都有自己的ContextImpl,并且每個(gè)ContextImpl都有自己的mResources成員塞弊,但是由于它們的mResources成員都來(lái)自于唯一的ResourcesManager實(shí)例漱逸,所以它們看似不同的mResources其實(shí)都指向的是同一塊內(nèi)存
- Context的數(shù)量等于Activity的個(gè)數(shù) + Service的個(gè)數(shù) + 1,這個(gè)1為Application
7.Gradle
構(gòu)建工具游沿、Groovy語(yǔ)法饰抒、Java
Jar包里面只有代碼,aar里面不光有代碼還包括代碼還包括資源文件诀黍,比 如 drawable 文件袋坑,xml 資源文件。對(duì)于一些不常變動(dòng)的 Android Library蔗草,我們可以直接引用 aar咒彤,加快編譯速度