原创 點擊 Android Studio 的 build 按鈕後發生了什麼?

官網地址 如圖 1 所示,典型 Android 應用模塊的構建流程通常按照以下步驟執行: 編譯器將您的源代碼轉換成 DEX 文件(Dalvik 可執行文件,其中包括在 Android 設備上運行的字節碼),並將其他所有內容轉

原创 圖片框架Glide與Picasso的區別:

Glide與Picasso的區別: 內存 Image質量的細節 磁盤緩存 Gif動圖 內存: 加載同一張圖片Picasso,Picasso的內存開銷仍然遠大於Glide。 Image質量的細節: Glid

原创 進階之自定義View之組合控件

對於Android小夥伴來說,自定義View是一個初級程序員進階中高級程序員所必需掌控的技能。 話不多說,接下來我們直接開始講解: 自定義View按類型來劃分的話,自定義View的實現方式大概可以分爲三種: 組合控件 繼承控件

原创 進階之自定義View之繼承控件

自定義View按類型來劃分的話,自定義View的實現方式大概可以分爲三種: 組合控件 繼承控件 自繪控件 上一篇我們講過了組合控件,接下來我們來講講繼承控件。 繼承AppCompatTextView public clas

原创 進階之自定義View之自繪控件

自定義View按類型來劃分的話,自定義View的實現方式大概可以分爲三種: 組合控件 繼承控件 自繪控件 上一篇我們講過了組合控件,接下來我們來講講自繪控件。 每一個視圖的繪製過程都必須經歷三個最主要的階段,即onMeasur

原创 Android對的Apk安裝過程經歷了什麼?

Apk安裝的主要分爲五大步驟: 將apk文件複製到data/app目錄 使用PackageManager的installPackage接口 之後調用installPackageAsUser。installPackageAs

原创 Ios 公司申請蘋果賬號

ios 公司申請蘋果賬號 進入蘋果開發者平臺 點擊Accout,跳轉蘋果註冊界面 填寫成功之後,你會收到一封郵件,激活你的蘋果ID就申請成功了,但到這裏對我們來說第一步才成功。 進入使用 Apple Developer App

原创 android 讀取assets文件夾下的gif

android 讀取assets文件夾下的gif String url = file:///android_asset/xxx.gif Glide.with(context) .asGif()

原创 安卓進程保活那些事之拉活策略

上一篇講了安卓進程保活那些事,你知道多少?保活 這一篇就講一講拉活,顧名思義保活就是保證它儘量活着,拉活就是死了再把他拉起來,讓他繼續活着。 拉活 JobScheduler拉活:定時任務拉起應用 MyJobService.st

原创 java.lang.IllegalArgumentException View=DecorView@79e715c[] not attached to window manager

java.lang.IllegalArgumentException View=DecorView@79e715c[] not attached to window manager 造成這類問題的原因:Dialog的生命週期比ac

原创 Android動畫之幀動畫詳解

幀動畫的原理: 把將動畫拆分爲 幀(一張張圖片) 的形式,按照順序播放出來。 幀動畫的特點: 優點:使用簡單,方便。 缺點:使用大量的圖片資源,容易引起OOM。 幀動畫的效果: 圖片資源 幀動畫的使用: 首先要把資源文件放到d

原创 Android之保持屏幕常亮的方法

Android之保持屏幕常亮的方法 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

原创 mac安裝adb工具

安裝adb(前提安裝過homebrew) brew cask install android-platform-tools 運行adb adb devices

原创 java爲什麼要重寫hashCode和equals方法?

java爲什麼要重寫hashCode和equals方法? 基本數據類型的 == 比較的值相等。 類的 == 比較的內存的地址,即是否是同一個對象。 在不覆蓋equals的情況下,同比較內存地址,原實現也爲 == ,如String等

原创 源碼解析之Activity的啓動流程

Activity的啓動在我們的Android學習中隨處可見,但是它的原理是如何運行的,我相信知道的人並不是很多。 此篇,讓我們一起去見證Activity啓動之美。 Activity的兩種啓動流程分別是: 點擊Launcher啓動