我經(jīng)歷過這么多年的摸爬滾打,面試過也被面試過。現(xiàn)總結(jié)與歸納Android開發(fā)相關(guān)面試題:
創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),同仁網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:同仁等地區(qū)。同仁做網(wǎng)站價(jià)格咨詢:13518219792
1、Activity啟動(dòng)模式有哪些,分別有什么不同?
2、Service啟動(dòng)模式有哪些,對應(yīng)的生命周期?IntentService呢?
3、ContentProvider的作用,是否支持多線程和多進(jìn)程
4、Broadcast的注冊方式,對應(yīng)的生命周期是什么,有序和無序那種可以中斷廣播?
5、AsyncTask的作用,如何使用(包括有哪些方法,能說出同步異步,能說出不同Android版本下的區(qū)別加分)
6、有哪些異步的方式?
7、Handler機(jī)制
8、Dialog的使用及其生命周期
9、Activity的生命周期,能否改?
10、Fragment的生命周期,能否改?
11、Activity和Fragment如何通信
12、View的繪制機(jī)制
13、View的事件傳遞機(jī)制
14、如何監(jiān)聽手勢
15、ImageView設(shè)置圖片顯示有哪幾種模式,有什么區(qū)別?
16、有哪些存儲方式
17、SharedPreferences是否支持多進(jìn)程、多線程
別看以上常問的是入門級的,但是有兩三年開發(fā)經(jīng)驗(yàn)?zāi)芑卮饒A滿的人不多。
1、如何理解Activity的任務(wù)親和性
2、如何讓Service為單獨(dú)的進(jìn)程
3、IntentService的實(shí)現(xiàn)原理
4、LocalBroadcast的作用,實(shí)現(xiàn)原理,相對于Broadcast的優(yōu)勢在哪,劣勢在哪
5、Handler的缺點(diǎn),會不會造成內(nèi)存泄漏,有則如何解決
6、Fragment與Activity的區(qū)別和聯(lián)系
7、Fragment如何緩存布局
8、Fragment與ViewPager的搭配使用,有沒有問題重疊問題,怎么解決
9、同時(shí)提供側(cè)滑和上下滑動(dòng),如何解決事件傳播問題
10、是否使用過Design包
11、嵌套滑動(dòng)理解
12、behavior的原理
13、對設(shè)計(jì)模式有什么看法,經(jīng)常使用的有哪些?
中級的稍微偏底層一些,這個(gè)主要考察平時(shí)是否關(guān)注而不是一味地懟業(yè)務(wù)需求
1、Activity的啟動(dòng)過程
2、Service創(chuàng)建為單獨(dú)進(jìn)程會有哪些問題?
3、簡述AIDL的構(gòu)建過程
4、IPC機(jī)制有哪些?
5、android多進(jìn)程通信方式,內(nèi)部原理
6、App啟動(dòng)的入口在哪?
7、LRU緩存算法
8、Bitmap的有哪幾種壓縮算法,有啥區(qū)別?
9、圖片在手機(jī)本地存儲大小和在內(nèi)存大小是否一致,為什么,Android默認(rèn)像素一般占幾個(gè)字節(jié)?
10、第三方框架的熟練程度,如:
11、SharedPreference內(nèi)部實(shí)現(xiàn)原理
12、模塊化、插件話、組件化等分別有什么區(qū)別,對用有什么好處
13、說說MV * 模式,并畫出做過項(xiàng)目的架構(gòu)圖
14、對跨平臺方案有哪些了解,使用過哪些? 比如RN
15、對大前端有什么看法,了解多少?使用過什么?
16、對其他語言的了解,kotlin,python、php、c++等
17、興趣愛好是什么?對未來有什么規(guī)劃?
目前是一些經(jīng)常會被問到的,當(dāng)然只是列舉了Android 開發(fā)方向的,Java的一些還沒列舉,比如異常、網(wǎng)絡(luò)、多線程、JCF等等
以上問題的答案在下面都有詳細(xì)解答,我們不僅整理了這些資料,而且還有一份長達(dá)"635頁"的Android資料匯總:
包括:底層原理+項(xiàng)目實(shí)戰(zhàn)+面試專題
雖說Android早已不像過去那般火爆,但各大廠對于中高級開發(fā)者仍舊是求賢若渴,想要獲取更豐厚的薪資,打鐵還得自身硬。對于框架、源碼、原理、項(xiàng)目實(shí)操經(jīng)驗(yàn),都必須有足夠的知識儲備,才可以在面試中擊敗面試官。但是由于網(wǎng)上的資料魚龍混雜,也不成體系,很多人在自我提升的過程中都頭疼不已。 這里就給大家分享一份字節(jié)大佬整理的《Android中高級面試題匯總(2022)》,幫助大家系統(tǒng)的梳理中高級Android知識!里面包含了所有Android面試的知識點(diǎn),刷完進(jìn)大廠妥妥的 !
(含:靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類的比較,多態(tài)的理解與應(yīng)用, java方法的多態(tài)性理解,java中接口和繼承的區(qū)別,線程池的好處,詳解,單例,線程池的優(yōu)點(diǎn)及其原理,線程池的優(yōu)點(diǎn),為什么不推薦通過Executors直接創(chuàng)建線程池,創(chuàng)建線程或線程池時(shí)請指定有意義的線程名稱,方便出錯(cuò)時(shí)回溯,深入理解ReentrantLock與Condition,Java多線程:線程間通信之Lock,Synchronized 關(guān)鍵字原理,ReentrantLock原理,HashMap中的Hash沖突解決和擴(kuò)容機(jī)制, JVM常見面試題, JVM內(nèi)存結(jié)構(gòu),類加載機(jī)制/雙親委托…)
(含:Activity知識點(diǎn), Fragment知識點(diǎn), Service知識點(diǎn), Intent知識點(diǎn)…)
(含:屏幕適配,主要控件優(yōu)化,事件分發(fā)與嵌套滾動(dòng)…)
(含:MVP架構(gòu)設(shè)計(jì),組件化架構(gòu)…)
(含:啟動(dòng)優(yōu)化,內(nèi)存優(yōu)化,繪制優(yōu)化,安裝包優(yōu)化…)
(含:開源庫源碼分析,Glide源碼分析,OkHttp源碼分析,Retrofit源碼分析,RxJava源碼分析…)
(含:開源文檔,面試合集…)
Describe the APK format.
The APK file is compressed the AndroidManifest.xml file, application code (.dex files), resource files, and other files. A project is compiled into a single .apk file.
What is an action?
A description of something that an Intent sender desires.
What is activity?
A single screen in an application, with supporting Java code.
What is intent?
A class (Intent) describes what a caller desires to do. The caller sends this intent to Android's intent resolver, which finds the most suitable activity for the intent.
How is nine-patch image different from a regular bitmap?
It is a resizable bitmap resource that can be used for backgrounds or other images on the device. The NinePatch class permits drawing a bitmap in nine sections. The four corners are unscaled; the four edges are scaled in one axis, and the middle is scaled in both axes.
What languages does Android support for application development?
Android applications are written using the Java programming language.
What is a resource?
A user-supplied XML, bitmap, or other file, injected into the application build process, which can later be loaded from code.
How will you record a phone call in Android? How to get a handle on Audio Stream for a call in Android?
Permissions.PROCESS_OUTGOING_CALLS: Allows an application to monitor, modify, or abort outgoing calls.
What's the difference between file, class and activity in android?
File - It is a block of arbitrary information, or resource for storing information. It can be of any type.
Class - Its a compiled form of .Java file . Android finally used this .class files to produce an executable apk
Activity - An activity is the equivalent of a Frame/Window in GUI toolkits. It is not a file or a file type it is just a class that can be extended in Android for loading UI elements on view.
What is a Sticky Intent?
sendStickyBroadcast() performs a sendBroadcast (Intent) that is "sticky," i.e. the Intent you are sending stays around after the broadcast is complete, so that others can quickly retrieve that data through the return value of registerReceiver (BroadcastReceiver, IntentFilter). In all other ways, this behaves the same as sendBroadcast(Intent).
One example of a sticky broadcast sent via the operating system is ACTION_BATTERY_CHANGED. When you call registerReceiver() for that action -- even with a null BroadcastReceiver -- you get the Intent that was last broadcast for that action. Hence, you can use this to find the state of the battery without necessarily registering for all future state changes in the battery.
Android動(dòng)畫可以幫助我們實(shí)現(xiàn)一些炫酷的效果,掌握動(dòng)畫主要在于練習(xí)。在面試中更多地根據(jù)實(shí)際需求回答。
正確答案: D
解析:Android動(dòng)畫有三種:View動(dòng)畫、幀動(dòng)畫、屬性動(dòng)畫
Tween(補(bǔ)間動(dòng)畫),即View動(dòng)畫,包括了平移(Translate)、縮放(Scale)、旋轉(zhuǎn)(Rotate)、透明度(Alpha),所以A、B正確。
Frame(幀動(dòng)畫)循序播放一組預(yù)先定義好的圖片,所以C正確
屬性動(dòng)畫(Property Animation)類名是:ValueAnimator、ObjectAnimator
我的個(gè)人博客