主頁 > 移動端開發 > 金九銀十Offer收割機:Android 面試核心知識點精講,不打沒準備的仗!

金九銀十Offer收割機:Android 面試核心知識點精講,不打沒準備的仗!

2021-09-01 14:50:38 移動端開發

前言

金九銀十面試旺季就要來了,先來一幅校招大廠薪酬,看完可能會更有動力了,

那么怎么學習才能更好的進大廠呢?

無他,就是靠自己的毅力以及決心,一天不行,一個月;一個月不行,一年;有決心的人,啥學歷、或者資歷,那些都是借口,

不過除了毅力和決心之外,其實學習還是有效率之差的

互聯網時代,其實網上有很多免費學習資料,只要你用點心,也總能找到學習資料,但是,很多時候,效率很重要,網上縱有很多免費訊息,但是一來花費你的時間,二來自己摸索也會踩不少坑,三是不夠系統

Android面試核心知識點精講

對于一位開發者來說,基礎知識決定了能走走多遠,能做多好,甚至是決定了能掙多少,尤其一些大廠非常注重基礎,基礎是一切的根本,很多面試時候都是問基礎知識,只不過問得比較深入,而不只是了解,如果沒有事先準備,很容易被淘汰,整理了一部分知識點,方便大家復習及鞏固知識,

Android:(詳細答案決議,點擊下面二維碼可以看到全部內容)

1.Activity

  • Activity的啟動流程
  • onSaveInstanceState(),onRestoreInstanceState的掉用時機
  • activity的啟動模式和使用場景
  • Activity A跳轉Activity B,再按回傳鍵,生命周期執行的順序
  • 橫豎屏切換,按home鍵,按回傳鍵,鎖屏與解鎖螢屏,跳轉透明Activity界面,啟動一個 Theme 為 Dialog 的 Activity,彈出Dialog時Activity的生命周期
  • onStart 和 onResume、onPause 和 onStop 的區別
  • Activity之間傳遞資料的方式Intent是否有大小限制,如果傳遞的資料量偏大,有哪些方案
  • Activity的onNewIntent()方法什么時候會執行
  • 顯示啟動和隱式啟動
  • scheme使用場景,協議格式,如何使用
  • ANR 的四種場景
  • onCreate和onRestoreInstance方法中恢復資料時的區別
  • activty間傳遞資料的方式
  • 跨App啟動Activity的方式,注意事項
  • Activity任務堆疊是什么
  • 有哪些Activity常用的標記位Flags
  • Activity的資料是怎么保存的,行程被Kill后,保存的資料怎么恢復的

2.Service

  • service 的生命周期,兩種啟動方式的區別
  • Service啟動流程
  • Service與Activity怎么實作通信
  • IntentService是什么,IntentService原理,應用場景及其與Service的區別
  • Service 的 onStartCommand 方法有幾種回傳值?各代表什么意思?
  • bindService和startService混合使用的生命周期以及怎么關閉

3.BroadcastReceiver

  • 廣播的分類和使用場景
  • 廣播的兩種注冊方式的區別
  • 廣播發送和接收的原理
  • 本地廣播和全域廣播的區別

4.ContentProvider

  • 什么是ContentProvider及其使用
  • ContentProvider,ContentResolver,ContentObserver之間的關系
  • ContentProvider的實作原理
  • ContentProvider的優點
  • Uri 是什么

5.Handler

  • Handler的實作原理
  • 子執行緒中能不能直接new一個Handler,為什么主執行緒可以
    主執行緒的Looper第一次呼叫loop方法,什么時候,哪個類
  • Handler導致的記憶體泄露原因及其解決方案
  • 一個執行緒可以有幾個Handler,幾個Looper,幾個MessageQueue物件
  • Message物件創建的方式有哪些 & 區別?
    Message.obtain()怎么維護訊息池的
  • Handler 有哪些發送訊息的方法
  • Handler的post與sendMessage的區別和應用場景
  • handler postDealy后訊息佇列有什么變化,假設先 postDelay 10s, 再postDelay 1s, 怎么處理這2條訊息
  • MessageQueue是什么資料結構
  • Handler怎么做到的一個執行緒對應一個Looper,如何保證只有一個MessageQueue,ThreadLocal在Handler機制中的作用
  • HandlerThread是什么 & 好處 &原理 & 使用場景
  • IdleHandler及其使用場景
  • 訊息屏障,同步屏障機制
  • 子執行緒能不能更新UI
  • 為什么Android系統不建議子執行緒訪問UI
  • Android中為什么主執行緒不會因為Looper.loop()里的死回圈卡死
    MessageQueue#next 在沒有訊息的時候會阻塞,如何恢復?
  • Handler訊息機制中,一個looper是如何區分多個Handler的
    當Activity有多個Handler的時候,怎么樣區分當前訊息由哪個Handler處理,處理message的時候怎么知道是去哪個callback處理的
  • Looper.quit/quitSafely的區別
  • 通過Handler如何實作執行緒的切換
  • Handler 如何與 Looper 關聯的
  • Looper 如何與 Thread 關聯的
  • Looper.loop()原始碼
  • MessageQueue的enqueueMessage()方法如何進行執行緒同步的
  • MessageQueue的next()方法內部原理
  • 子執行緒中是否可以用MainLooper去創建Handler,Looper和Handler是否一定處于一個執行緒
  • ANR和Handler的聯系

6.View繪制

  • View繪制流程
  • MeasureSpec是什么
  • 子View創建MeasureSpec創建規則是什么
  • 自定義Viewwrap_content不起作用的原因
  • 在Activity中獲取某個View的寬高有幾種方法
  • 為什么onCreate獲取不到View的寬高
  • View#post與Handler#post的區別
  • Android繪制和螢屏重繪機制原理
  • Choreography原理
  • 什么是雙緩沖
  • 為什么使用SurfaceView
  • 什么是SurfaceView
  • View和SurfaceView的區別
  • SurfaceView為什么可以直接子執行緒繪制
  • SurfaceView、TextureView、SurfaceTexture、GLSurfaceView
  • getWidth()方法和getMeasureWidth()區別
  • invalidate() 和 postInvalidate() 的區別
  • Requestlayout,onlayout,onDraw,DrawChild區別與聯系
  • LinearLayout、FrameLayout 和 RelativeLayout 哪個效率高
  • LinearLayout的繪制流程
  • 自定義 View 的流程和注意事項
  • 自定義View如何考慮機型適配
  • 自定義控制元件優化方案
  • invalidate怎么區域重繪
  • View加載流程(setContentView)

7.View事件分發

  • View事件分發機制
  • view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch方法 三者優先級
  • onTouch 和onTouchEvent 的區別
  • ACTION_CANCEL什么時候觸發
  • 事件是先到DecorView還是先到Window
  • 點擊事件被攔截,但是想傳到下面的View,如何操作
  • 如何解決View的事件沖突
  • 在 ViewGroup 中的 onTouchEvent 中消費 ACTION_DOWN 事件,ACTION_UP事件是怎么傳遞
  • Activity ViewGroup和View都不消費ACTION_DOWN,那么ACTION_UP事件是怎么傳遞的
  • 同時對父 View 和子 View 設定點擊方法,優先回應哪個
  • requestDisallowInterceptTouchEvent的呼叫時機

8.RecycleView

  • RecyclerView的多級快取機制,每一級快取具體作用是什么,分別在什么場景下會用到哪些快取
  • RecyclerView的滑動回收復用機制
  • RecyclerView的重繪回收復用機制
  • RecyclerView 為什么要預布局
  • ListView 與 RecyclerView區別
  • RecyclerView性能優化

9.Viewpager&Fragment

  • Fragment的生命周期 & 結合Activity的生命周期
  • Activity和Fragment的通信方式, Fragment之間如何進行通信
  • 為什么使用Fragment.setArguments(Bundle)傳遞引數
  • FragmentPageAdapter和FragmentStatePageAdapter區別及使用場景
  • Fragment懶加載
  • ViewPager2與ViewPager區別
  • Fragment嵌套問題

10.WebView

  • 如何提高WebView加載速度
  • WebView與 js的互動
  • WebView的漏洞
  • JsBridge原理

11.影片

  • 影片的型別
  • 補間影片和屬性影片的區別
  • ObjectAnimator,ValueAnimator及其區別
  • TimeInterpolator插值器,自定義插值器
  • TypeEvaluator估值器

12.Bitmap

  • Bitmap 記憶體占用的計算
  • getByteCount() & getAllocationByteCount()的區別
  • Bitmap的壓縮方式
  • LruCache & DiskLruCache原理
  • 如何設計一個圖片加載庫
  • 有一張非常大的圖片,如何去加載這張大圖片
  • 如果把drawable-xxhdpi下的圖片移動到drawable-xhdpi下,圖片記憶體是如何變的,
  • 如果在hdpi、xxhdpi下放置了圖片,加載的優先級,如果是400800,10801920,加載的優先級,

13.mvc&mvp&mvvm

  • MVC及其優缺點
  • MVP及其優缺點
  • MVVM及其優缺點
  • MVP如何管理Presenter的生命周期,何時取消網路請求

14.Binder

  • Android中行程和執行緒的關系,區別
  • 為何需要進行IPC,多行程通信可能會出現什么問題
  • Android中IPC方式有幾種、各種方式優缺點
  • 為何新增Binder來作為主要的IPC方式
  • 什么是Binder
  • Binder的原理
  • Binder Driver 如何在內核空間中做到一次拷貝的?
  • 使用Binder進行資料傳輸的具體程序
  • Binder框架中ServiceManager的作用
  • 什么是AIDL
  • AIDL使用的步驟
  • AIDL支持哪些資料型別
  • AIDL的關鍵類,方法和作業流程
  • 如何優化多模塊都使用AIDL的情況
  • 使用 Binder 傳輸資料的最大限制是多少,被占滿后會導致什么問題
  • Binder 驅動加載程序中有哪些重要的步驟
  • 系統服務與bindService啟動的服務的區別
  • Activity的bindService流程
  • 不通過AIDL,手動編碼來實作Binder的通信

15.記憶體泄漏&記憶體溢位

  • 什么是OOM & 什么是記憶體泄漏以及原因
  • Thread是如何造成記憶體泄露的,如何解決?
  • Handler導致的記憶體泄露的原因以及如何解決
  • 如何加載Bitmap防止記憶體溢位
  • MVP中如何處理Presenter層以防止記憶體泄漏的

16.性能優化

  • 記憶體優化
  • 啟動優化
  • 布局加載和繪制優化
  • 卡頓優化
  • 網路優化

17.Window&WindowManager

  • 什么是Window
  • 什么是WindowManager
  • 什么是ViewRootImpl
  • 什么是DecorView
  • Activity,View,Window三者之間的關系
  • DecorView什么時候被WindowManager添加到Window中

18.WMS

  • 什么是WMS
  • WMS是如何管理Window的
  • IWindowSession是什么,WindowSession的創建程序是怎樣的
  • WindowToken是什么
  • WindowState是什么
  • Android視窗大概分為幾種?分組原理是什么
  • Dialog的Context只能是Activity的Context,不能是Application的Context
  • App應用程式如何與SurfaceFlinger通信的
    View 的繪制是如何把資料傳遞給 SurfaceFlinger 的
  • 共享記憶體的具體實作是什么
  • relayout是如何向SurfaceFlinger申請Surface
  • 什么是Surface

19.AMS

  • ActivityManagerService是什么?什么時候初始化的?有什么作用?
  • ActivityThread是什么?ApplicationThread是什么?他們的區別
  • Instrumentation是什么?和ActivityThread是什么關系?
  • ActivityManagerService和zygote行程通信是如何實作的
  • ActivityRecord、TaskRecord、ActivityStack,ActivityStackSupervisor,ProcessRecord
  • ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的關系
  • 手寫實作簡化版AMS

20.系統啟動

  • android系統啟動流程
  • SystemServer,ServiceManager,SystemServiceManager的關系
  • 范訓應用行程這種事為什么不交給SystemServer來做,而專門設計一個Zygote
  • Zygote的IPC通信機制為什么使用socket而不采用binder

21.App啟動&打包&安裝

  • 應用啟動流程
  • apk組成和Android的打包流程
  • Android的簽名機制,簽名如何實作的,v2相比于v1簽名機制的改變
  • APK的安裝流程

22.序列化

  • 什么是序列化
  • 為什么需要使用序列化和反序列化
  • 序列化的有哪些好處
  • Serializable 和 Parcelable 的區別
  • 什么是serialVersionUID
  • 為什么還要顯示指定serialVersionUID的值?

23.Art & Dalvik 及其區別

  • Art & Dalvik 及其區別

24.模塊化&組件化

  • 什么是模塊化
  • 什么是組件化
  • 組件化優點和方案
  • 組件獨立除錯
  • 組件間通信
  • Aplication動態加載
  • ARouter原理

25.熱修復&插件化

  • 插件化的定義
  • 插件化的優勢
  • 插件化框架對比
  • 插件化流程
  • 插件化類加載原理
  • 插件化資源加載原理
  • 插件化Activity加載原理
  • 熱修復和插件化區別
  • 熱修復原理

26.AOP

  • AOP是什么
  • AOP的優點
  • AOP的實作方式,APT,AspectJ,ASM,epic,hook
  • jectpack
  • Navigation
  • DataBinding
  • Viewmodel
  • livedata
  • liferecycle

28.開源框架

  • Okhttp原始碼流程,執行緒池
  • Okhttp攔截器,addInterceptor 和 addNetworkdInterceptor區別
  • Okhttp責任鏈模式
  • Okhttp快取怎么處理
  • Okhttp連接池和socket復用
  • Glide怎么系結生命周期
  • Glide快取機制,記憶體快取,磁盤快取
  • Glide與Picasso的區別
  • LruCache原理
  • Retrofit原始碼流程,動態代理
  • LeakCanary弱參考,原始碼流程
  • Eventbus
  • Rxjava

Java:

1.HashMap

  • HashMap原理
  • HashMap中put()如何實作的
  • HashMap中get()如何實作的
  • 為什么HashMap執行緒不安全
  • HashMap1.7和1.8有哪些區別
  • 解決hash沖突的時候,為什么用紅黑樹
  • 紅黑樹的效率高,為什么一開始不用紅黑樹存盤
  • 不用紅黑樹,用二叉查找樹可以不
  • 為什么閥值是8才轉為紅黑樹
  • 為什么退化為鏈表的閾值是6
  • hash沖突有哪些解決辦法
  • HashMap在什么條件下擴容
  • HashMap中hash函式怎么實作的,還有哪些hash函式的實作方式
  • 為什么不直接將hashcode作為哈希值去做取模,而是要先高16位異或低16位
  • 為什么擴容是2的次冪
  • 鏈表的查找的時間復雜度是多少
  • 紅黑樹

2.ArrayList

3.Jvm

  • Jvm的記憶體模型,每個里面都保存的什么
  • 類加載機制的幾個階段加載、驗證、準備、決議、初始化、使用、卸載
  • 物件實體化時的順序
  • 類加載器,雙親委派及其優勢
  • 垃圾回識訓制

4.多執行緒

  • Java中創建執行緒的方式,Callable,Runnable,Future,FutureTask
  • 執行緒的幾種狀態
  • 談談執行緒死鎖,如何有效的避免執行緒死鎖?
  • 如何實作多執行緒中的同步
  • synchronized和Lock的使用、區別,原理;
  • volatile,synchronized和volatile的區別?為何不用volatile替代synchronized?
  • 鎖的分類,鎖的幾種狀態,CAS原理
  • 為什么會有執行緒安全?如何保證執行緒安全
  • sleep()與wait()區別,run和start的區別,notify和notifyall區別,鎖池,等待池
  • Java多執行緒通信
  • 為什么Java用執行緒池
  • Java中的執行緒池引數,共有幾種

5.注解

  • 注解的分類和底層實作原理
  • 自定義注解

6.反射

  • 什么是反射
  • 反射機制的相關類
  • 反射中如何獲取Class類的實體
  • 如何獲取一個類的屬性物件 & 構造器物件 & 方法物件
  • Class.getField和getDeclaredField的區別,getDeclaredMethod和getMethod的區別
  • 反射機制的優缺點

7.泛型

8.設計模式

有些程式員自認自己技術挺好在面試時薪資談判時覺得自己要求很低,但還是被淘汰了,因此想不通原因,這都是因為對自身的技能層級認知不夠清晰,進行了錯誤的判斷,下面我給大家講解下關于Android開發者的四個層級區別,面試前對自己有一個清晰的認知也是很重要的

關于Android開發者的四個層級

按我的理解,無論是Android開發者還是其他的開發者都可以分為四個層級,可依次對應普通、熟練、優秀、卓越這四個詞,

1.普通

普通開發者,能夠使用一定的專項技術,完成別人分配的模塊的開發,在作業當中,他們很少有機會決定自己做什么和怎么做,通常是在他人指導和安排下編碼實作特定的細分功能,

這部分人中的大部分人,一般比較注重經濟利益,有一定的經濟壓力,尚未把編程作為自己的一種愛好和自我實作的途徑,多半感興趣的是怎么找到一份好作業,怎么得到一份好薪水,但是他們忽視了,從長遠來看,中國的軟體職場,最終的發展方向肯定不是“五分運氣,三分做人,兩分技術”,對于一個技術人員來說,技術才是獲得競爭優勢的唯一途徑,在技術上沒有競爭優勢,你就失去了一個技術人員的安身立命之本,他們盲目崇拜所謂的“創新和創意”,誤以為那是不用刻苦鉆研技術而又改變自己命運的捷徑!

這個階段會有大量的人退出,謀求轉型……

2.熟練

一般的開發者,會在普通開發者這個階段停留 3 ~ 5 年,然后就進階為熟練開發者,能運用一組技能樹,完成較為復雜的軟體模塊的開發作業,進入這個階段的標識有兩個:

  • 你可以做某個功能模塊或子系統的軟體設計作業
  • 你可以分配任務給普通開發者

不過我覺得,從應用層開發達到一定技術水平后,轉到中間層或者稱之為“框架層”開發的人,比一開始就坐框架層開發的人,更容易深入,做過應用層開發的人,更有所謂的“切膚之疼”,從而更能理解一些策略和為什么的原理性的東西,這類開發人員一般屬于稍微資深一點的,一般都有強烈的技術饑餓感,覺得自己懂的很少,不停的去提高充實自己

到了熟練階段,你才算是有一技之長,才稱得上是靠技術吃飯(因為普通開發者越來越多,初階的編碼能力已經算不上一技之長了),

但你可能會在這個階段停留 3 ~ 5 年,

這個階段會有大部分人開始懷疑程式人生的意義,一方面對開發作業很熟悉了,也沒激情了,另一方面又很難進入下一階段獲得突破,于是倦怠、空虛、無聊、意義匱乏等狀況紛至沓來,在這個三十而立的年紀,很多人會考慮轉型,一部分人因為看不到其它的機會又難以放棄開發技能的積累和高薪,在猶猶豫豫中蹉跎歲月;另一部分人未雨綢繆,在日常的開發作業中,已經發展了支線劇情,轉型比較順利,

在熟練開發者這個階段,有一小部分人,能夠在某個技術堆疊上持續精進,凸顯出優勢,靠這種技術優勢,成為高級開發者;另有一小部分人,一手技術,一手業務,靠交叉優勢,也成為了高級開發者,在這兩類高級開發者中,又會誕生出 Team Leader 這種角色,

成為上面這部分人的典型標志就是:你被很多人需要,有各種疑難問題需要你參與或主持解決,

3.優秀

擁有技術優勢的高級開發者和擁有技術+業務組合優勢的高級開發者,他們當中有一部分人會晉級為技術專家或架構師,Team Leader 可能會晉級為一線經理(技術經理、專案經理、研發經理),這算是開發者的第三個層級,進入這個層級的開發者通常會:帶人,帶專案,安排別人做事情,在重要的技術決策上擁有話語權,

這類開發的技術含量其實和中間層開發差不太多,從某種意義上還不如,其實,驅動開發更主要的要求需要一定的硬體知識,這類開發人員一般是各大手機廠家的開發人員,由于接觸的面比較窄,技術饑餓感不如中間層開發人員,第二,第三層的開發人員通常在國內的廠家任職,比如魅族、小米、HTC,只有這個樣的廠家經過一定的技術沉淀,才會向最高層進軍,中國軟體行業才會做出真正意義上的自主的平臺,

到了這個階段,你的年齡應該在 30 ~ 35 歲,年收入會突破 50 萬,

4.卓越

很多小公司的技術領導者(包括首席架構師、資深架構師、CTO等),實際上多數是從第三階段橫跨出來的,利用相對優勢獲得了職能和頭銜上的提升,

這種人是真正意義上的Android程式員,他們會有選擇的去閱讀Android框架源代碼,會認真的去閱讀dalvik的源代碼,自身知識結構也比較成熟,知識面比較廣,會很多上面三類人都不具有的除錯和跟蹤技巧,對一些作業系統和平臺設計的思想和策略,了如指掌,在問題域和技術域之間左右逢源,這些人,多半也精通其他移動平臺或者服務器作業系統,

技術人員如何提升自己?

大廠到底還是大廠……一言不合就寫代碼,而且相當重視基礎,說是面經,其實就是幫助各位查漏補缺,完善技術堆疊,畢竟面經只是面試官拿來采樣你的水平的測驗用例,我遇到過各種奇怪的問題……

如果你覺得自己學習效率低,缺乏正確的指導,可以參考下下面分享我多年作業以來收集整理的學習路線,給大家做個參考:

1、確定好方向,梳理成長路線圖

不用多說,相信大家都有一個共識:無論什么行業,最牛逼的人肯定是站在金字塔端的人,所以,想做一個牛逼的程式員,那么就要讓自己站的更高,成為技術大牛并不是一朝一夕的事情,需要時間的沉淀和技術的積累,

關于這一點,在我當時確立好Android方向時,就已經開始梳理自己的成長路線了,包括技術要怎么系統地去學習,都列得非常詳細,

接下來是每個模塊我整理出來的檔案學習資料,幫助大家更細致化的學習,

2、看視頻進行系統學習

前幾年的Crud經歷,讓我明白自己真的算是菜雞中的戰斗機,也正因為Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的,我差的是系統知識,差的結構框架和思路,所以通過視頻來學習,效果更好,也更全面,關于視頻學習,個人可以推薦去B站進行學習,B站上有很多學習視頻,唯一的缺點就是免費的容易過時,

另外,我自己也珍藏了好幾套視頻,有需要的我也可以分享給你,

3、通過原始碼來系統性地學習

只要是程式員,不管是Java還是Android,如果不去閱讀原始碼,只看API檔案,那就只是停留于皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的,

“編程語言是程式員的表達的方式,而架構是程式員對世界的認知”,所以,程式員要想快速認知并學習架構,讀原始碼是必不可少的,閱讀原始碼,是解決問題 + 理解事物,更重要的:看到原始碼背后的想法;程式員說:讀萬行原始碼,行萬種實踐,

真正最能鍛煉能力的便是直接去閱讀原始碼,不僅限于閱讀各大系統原始碼,還包括各種優秀的開源庫,

《486頁超全面Android開發相關原始碼精編決議》

《486頁超全面Android開發相關原始碼精編決議》

4、簡歷準備充分

可以去知乎上面搜搜別人寫的有關簡歷的帖子,怎么準備,吸引hr, 突出自己的優點和能力,或者讓朋友幫你看看簡歷有沒有問題,比如過于簡單或者浮夸,沒有重點等,

盡量把你的亮點總結成一句簡練的話,再加上數字來說明它的影響和意義,

其次在簡歷里中加入了可互動、可展示的內容,更能顯出你的能力與眾不同,

有很多人經常也會遇到很多關于簡歷制作,職業困惑、HR經典面試問題回答等有關面試的問題,同樣我也搜集整理了全套簡歷制作、金三銀四社招困惑、HR面試等問題決議,有疑問,可以提供專業的解答,

5、刷題備戰,直通大廠

面試的前一周時間內,就可以開始刷題沖刺了,請記住,刷題的時候,技術的優先,演算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎么會問,

關于面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三,

《379頁Android開發面試寶典》

《379頁Android開發面試寶典》

以上這些資料都已打包整理完畢:

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/296634.html

標籤:其他

上一篇:盤點:2021年大廠全面又實用的Android開發面試真題決議!

下一篇:最短時間搞定演算法:位元組跳動Android崗演算法題考前突擊寶典

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more