原创 四年androider,2020年初疫情時期間面經

  第一次視頻面試(歷時2小時) 簡短的自我介紹(涉及畢業院校,工作年限); 前幾家公司簡單的介紹下做過哪方面的項目; 你擅長的部分(架構,UI等等你肯定有一個擅長的吧?); 音視頻原理、編解碼 着重介紹一個項目你負責的部分以及架構

原创 IntelliJ IDEA下載安裝 + Tomcat下載安裝 + Eclipse的Web項目導入

IntelliJ IDEA下載安裝 + Tomcat下載安裝 + Eclipse的Web項目導入   Tomcat 下載與安裝 https://blog.csdn.net/weixin_42562514/article/details/8

原创 最易懂內存泄漏定位分析 - profiler的應用

內存泄漏:內存不在GC掌控之內了。當一個對象已經不需要再使用了,本該被回收時,而有另外一個正在使用的對象持有它的引用從而就導致,對象不能被回收。這種導致了本該被回收的對象不能被回收而停留在堆內存中,就產生了內存泄漏 四中引用: Stro

原创 Android studio 3.5 豆沙護眼色配置、字體大小設置、內存大小設置

1、左邊目錄欄顏色配置:   2、代碼編輯區域背景色設置   3、控制檯背景色設置   4、菜單欄、工具欄、左邊欄字體大小設置   5、編碼區字體大小設置   6、修改內存大小、顯示內存 例如:修改android-studio/

原创 不看不知道設計模式2

目前市面上使用的模式主流的有:MVC,MVP,MVVM三種。   MVC mvc模式是模型,視圖,控制器三種不同功能的組合,你中有我我中有你。     如圖,實線代表方法調用,虛線代表事件通知。 MVC允許在不改變視圖的情況下改變視圖對

原创 組件通信、線程通信、進程通信,你真的理清了嗎?

通信從總體上來看,可以理解爲“弱通信”和“強通信”兩種。 弱通信 弱通信就是通過修改公共區的值,讓兩者都能獲取,從而實現兩者的信息傳遞。 同進程不同組件弱通信:ActivityA中新建計算類CalculatorB,在CalculatorB

原创 性能優化組合拳

一、卡頓優化     啓動卡頓優化     現象:啓動慢,啓動白屏,啓動黑屏     1、不要在oncreate中做耗時操作     2、不要在application中做耗時操作     3、佈局要淺,避免過度繪製,如果佈局實在是複雜,用

原创 三方框架知多少

用過的三方框架: eventbus okhttp retrofit rxjava picasso ormlite:數據庫 Gson:JSON數據解析框架,Gson是Google自家開發的,所以Google也極力推薦使用這個庫來解析JS

原创 volatile synchronize 那些關鍵字的愛恨糾葛

Java中併發編程需要注意的特性:原子性、可見性、有序性 原子性:是指在一次的操作或者多次操作中, 要麼所有的操作全部都得到了執行並且不會受到任何因素的干擾而中斷, 要麼所有 的操作都不執行。 比如加了synchronize的代碼塊 可見

原创 View事件分發機制速查表

寫自定義控件時,經常遇到事件衝突問題,之前事件分發問題零星的梳理過幾遍,但奈何分發事件由於情況的多變,導致最後的結果種類太多,時間長了又沒有印象了。又不能每次遇到問題就從源碼梳理一遍,特此梳理一份全網最全的事件分發結果速查表 此處不對源碼

原创 冷門數據結構

CopyOnWriteArrayList 最近在梳理Redis的知識,其中有一點是Redis的快照功能,Redis寫快照的時候,用到了Linux底層的Copy-On-Write技術,可能有些人沒聽過或者聽過但是沒有深入瞭解下這個技術,通

原创 android signingConfigs打包配置

android studio 2種簽名模式 debug和release模式 debug模式 debug模式使用一個默認的debug.keystore進行簽名。 默認的不用管 release模式 在我們正式發佈項目的時候是不能使用debug

原创 接口作爲參數時kotlin語言寫法總結

這裏以點擊事件爲例子 java中,setOnClickListener後面需要傳入OnClickListener接口對應的對象 button.setOnClickListener(new View.OnClickListener() {

原创 自定義控件

1.自定義控件常用的三個構造方法,參數分別1和2和3 public MView(Context context) {     super(context); }   public MView(Context context, @Null

原创 圖片轉化爲pdf

  private static finical String SDCARD_PATH = Environment.getExternalStorageDirectory().getPath() + "/Pictures/Screensh