原创 jni調用java層靜態和非靜態函數

jni調用java中的函數大致分爲以下三個步驟 通過(*env)->FindClass找到類的對象 通過(*env)->GetMethodID來獲取方法Id 通過調用(*env)-<CallVoidMethod來調用對應的函數/

原创 JNI靜態註冊與動態註冊詳解

JNI註冊,是指將java層方法(native關鍵字修飾的)和C層方法對應起來,以實現java層代碼調用c層代碼的目的。JNI註冊分爲靜態註冊和動態註冊兩種,靜態註冊是通過固定格式方法名進行關聯,動態註冊是通過動態添加映射關係來進

原创 android進程間通信:aidl使用及原理

android中,應用與應用、應用內不同進程之間需要做數據傳遞時,就需要用到進程間通信,常用的進程間通信有7種,而使用最多的便是aidl,aidl是基於binder來實現的。 傳統IPC對比 名稱 性能 特點 安全性

原创 oppo的android面試準備

很榮幸收到的oppo的面試通知,對此在網上查閱一些以往面oppo的題目,整體如下,參考題目來自 OppoAndroid面試小記 看準網oppo的android面試 android基礎 Activity啓動模式及應用場景? st

原创 android性能優化從入門到精通

什麼是性能優化 android性能優化,是指在性能上追求更高的要求,從而讓app更快、更穩定、更節省資源。 優化目的 性能指標 優化的方向 更快 流暢性 啓動速度頁面響應速度響應速度 更穩定 穩定性 避免出現應用

原创 android的ANR原理剖析及圖解(基於android9.0)

android中如果在主線程執行耗時操作,那麼將會彈出系統彈窗ANR,那麼framework層是如何實現超時的判定、都有哪些情況會產生ANR呢? 經過分析framework源碼發現,有以下四種場景會引起ANR InputDisp

原创 騰訊閱文集團android面試記錄

一面(電話面試) Android事件分發機制,如何處理衝突 webview有哪些問題? listview緩存機制和優化 Bitmap圖片優化 okhttp源碼:分發器和五大攔截器 線程間通信和進程間通信 類加載機制 如何做進程保

原创 android性能優化之內存優化

android內存問題 android內存問題分爲內存抖動和內存泄漏。內存抖動是指短時間內有大量對象創建銷燬,它伴隨頻繁的GC。內存泄漏是指程序中已動態分配的堆內存由於某種原因未釋放或無法釋放,造成系統內存的浪費,長生命週期對象持

原创 java實現二叉樹遍歷(先序中序後序)

二叉樹的遍歷,主要有先序中序和後序遍歷,三個的遞歸實現都比較簡單,而非遞歸實現略複雜。 先遍歷之前,我們先定義一個節點 public class TreeNode { private int data; private Tre

原创 android性能優化之圖片Bitmap優化(含源碼)

android應用中,一般都會大量用到圖片加載,使用不當會引起OOM,在glide出現前,我們可能會經常遇到圖片OOM的問題,那麼我們假設沒有glide,如何來考慮優化呢?這樣考慮有助於我們深入理解圖片優化,以及性能優化。 我們分

原创 android性能優化之耗電優化

android性能優化之耗電優化 耗電檢測 工具Battery Historian2.0 Historian安裝與配置 battery-historian使用介紹 三大耗電模塊 顯示 網絡 cpu 顯示 屏幕類

原创 java的線程池ThreadPoolExecutor原理解析

使用多線程,必然要用到線程池,而ThreadPoolExecutor是java中線程池的重要實現類,理解ThreadPoolExecutor有助於我們更好地理解線程池、甚至去自定義自己的線程池。 基本使用 初始化線程池 Exe

原创 阿里android面試準備與題目整理

最近收到了阿里內推的郵件,很快會進行面試,爲了準備面試,網上查閱相關阿里歷史面試題目,並在這裏整理了一下。 感謝以下博主提供的資料 阿里android實習崗面試面經 {Android}參加阿里完面試後:一到HR四面,我的覆盤經驗

原创 greenDao源碼分析

greenDao源碼分析

原创 android適配指南

android適配,是android中非常重要的內容,我們平時做適配時,一般會相對佈局、wrap_content、線性比例、單位dp等來做,僅僅做這些其實僅僅算及格,並不能完美適配,比如某個按鈕寬高,如果僅僅是寫一個dp,那麼多數