主頁 > 移動端開發 > 程式員在地鐵上寫代碼被路人吐槽:有什么好裝的!網友評論炸鍋了!

程式員在地鐵上寫代碼被路人吐槽:有什么好裝的!網友評論炸鍋了!

2021-02-04 13:45:24 移動端開發

現在的人自我意識越來越強,專注做自己的事不太會在意別人的眼光,不管別人如何評價路,畢竟腳下的路是自己在走,

最近有位網友在職場論壇上發帖,說看見地鐵上有一程式員大哥在寫代碼,并且配上了一張照片,

從照片中可以看出,一位男子坐在靠地鐵欄桿的地方,把包放在腿上,墊著電腦,噼噼啪啪的在作業,地鐵上人不多,顯然不是高峰期,他作業的狀態很專注,

沒想到程式員的這個舉動卻被路人吐槽說:“有什么好裝的”,地鐵里手機信號都不好,如果遇到緊急的bug,早就下車找地方去修改了,還用在地鐵里干,

但這個網友的帖子立刻引來其他網友的回懟,說寫代碼根本不用網路而且地鐵的網路現在也很好,就是因為他覺得寫代碼是一個很高大上的事情,所以才會覺得程式員在裝,

其實在程式員看來這就是他的作業,是因為作業太多,進度太趕,實在忙不過來,或者因為在下班的路上,突然有了靈感才在地鐵里干活,

也有網友說,不管他是不是裝,他都是在工努力作業,對于這種抓緊分分秒秒都在拼搏的年輕人,我們應該對他心生敬意,而不是冷嘲熱諷,

如果一個人在地鐵里背英文單詞,是不是也會被人諷刺裝呢,但是有很多人就是這樣不斷充實自己,才讓自己變得更優秀,

也有人說他不是在裝,沒有從事過這個行業的人不了解,真的是太忙了,地鐵里不干,可能回家就要多干一小時,利用地鐵的時間多干一點,那么回家就可以多休息一會,

分享讀者

作為一名Android開發,與其整天996,拼命加班,不妨正視自己的缺點和不足,構建一個屬于自己的知識體系,提升作業效率,

同時也能夠讓我們學到的知識體系化.讓自己清楚哪塊是自己的知識盲區,哪塊已經構建起根基.然后根據實際情況,有針對性的進行模塊學習.讓自己成為一個合格的Android工程師.

我們平時看博客或者學知識,學到的東西比較零散,沒有獨立的知識模塊概念,而且學了之后很容易忘.于是我建立了一個自己的筆記倉庫 (一個我長期維護的筆記倉庫,感興趣的可以點個star~你的star是我寫作的巨大大大大的動力),將平時學到的東西都歸類然后放里面,需要的時候呢也方便復習.過了段時間,我覺得這樣還是不夠好,于是我最近花了點時間,整理了一下Android中的常見知識,畫了一張思維導圖.更清晰地認識自己的知識邊界到底在哪里,哪些東西還不足.

此知識體系呢只是一個參考,大家可以根據自己的實際情況進行針對性學習,然后進行查漏補缺,提升自己~

1. 計算機基礎

1.1 計算機網路

1.1.1 計算機網路概述

  • 網路七層協議

  • TCP/IP四層模型

  • 底層協議

  • 底層設備

1.1.2 應用層

  • HTTP協議(???)

  • DHCP協議(???)

  • NAT

1.1.3 傳輸層(???)

  • TCP協議

  • UDP協議

1.1.4 網路層

  • IP協議

  • ICMP協議

1.2 作業系統(???)

1.2.1 作業系統基本功能

  • 行程管理

  • 作業管理/檔案管理

  • 存盤管理/設備管理

1.2.2 Linux系統

  • 記憶體管理

  • 行程管理

  • 檔案系統

  • 常見命令操作

1.2.3 補充

  • 自旋鎖/互斥鎖/讀寫鎖/條件變數/共享檔案

  • 訊息佇列/管道/信號量

  • 作業系統的用戶態與內核態

  • 背景關系切換成本

  • 行程,執行緒與協程

2. Java基礎(???)

image

2.1 集合原理

  • ArrayList

  • Vector

  • Stack

  • LinkedList

  • HashMap

  • Hashtable

  • TreeMap

  • LinkedHashMap

  • HashSet

  • TreeSet

  • CopyOnWriteArrayList

  • ConcurrentHashMap

  • LinkedBlockingQueue

  • SynchronousQueue

  • SparseArray

  • ArrayMap

2.2 其他

  • 面向物件

  • 設計模式

  • 反射

  • 泛型

  • 注解

3. Java并發

3.1 執行緒基礎

  • 實作多執行緒

  • 啟動執行緒

  • 停止執行緒

  • 執行緒的6種狀態

  • 各種各樣的鎖

    • 悲觀鎖和樂觀鎖

    • 共享鎖和獨占鎖

    • 公平鎖和非公平鎖

    • 可重入鎖和非可重入鎖

    • 可中斷鎖和非可中斷鎖

    • 自旋鎖和非自旋鎖

    • 偏斜鎖/輕量級鎖/重量級鎖

    • JVM對synchronized鎖的優化

  • wait/notify/sleep/join等重要方法

  • 守護執行緒,優先級等屬性

  • 執行緒安全

  • Future獲取運行結果

  • Fork/Join模式

  • CountDownLatch

  • CyclicBarrier

  • Semaphore

  • Condition

  • Phaser

  • 重排序

  • 原子性

  • 記憶體可見性

  • CAS原理

  • AQS框架

3.2 其他

3.2.1 并發容器

  • Vector/Hashtable

  • ConcurrentHashMap

  • CopyOnWriteArrayList

  • 阻塞佇列

  • 非阻塞隊列

  • ConcurrentSkipListMap

3.2.2 atomic包,6種原子類

  • 分類

  • 原子類與鎖

  • 原子類與volatile

3.2.3 ThreadLocal

  • 使用場景

  • 原理

3.3.4 執行緒池

  • 優點

  • 引數

  • 分類

  • 執行任務流程

  • 拒絕策略

  • 正確關閉執行緒池

  • 執行緒池復用原理

4. JVM虛擬機

  • 記憶體區域

  • 記憶體模型

  • 記憶體分配回收策略

  • Java物件的創建、記憶體布局和訪問定位

  • GC: 參考計數及可達性分析,垃圾回收演算法,G1及ZGC

  • 類加載機制

  • 雙親委派模型

  • 編譯器優化: 方法行內,逃逸分析

  • 虛擬機相關: HotSpot及JIT,Dalvik,ART及AOT

  • JVM執行方法

  • JVM實作反射

  • JVM實作泛型

  • JVM實作例外

  • JVM實作注解

5. 資料結構與演算法

5.1 資料結構

  • 堆疊

  • 佇列

  • 陣列

  • 鏈表

  • Hash表

  • 二叉樹

  • 基礎排序演算法

  • 字串操作

5.2 演算法

  • 分治演算法

  • 動態規劃

  • 貪心演算法

  • 分支限界法

5.3 刷題

  • CS-Notes劍指Offer題解

  • CS-NotesLeetCode題解

  • 1307頁位元組跳動Android高頻面試題集

6. Android基礎

image

6.1 核心知識點

6.1.1 四大組件

  • Activity

  • Service

  • BroadcastReceiver

  • ContentProvider

6.1.2 布局和控制元件

  • RelativeLayout

  • FrameLayout

  • LinearLayout

  • ConstraintLayout

  • Button

  • TextView

  • RecyclerView

6.1.3 自定義View/ViewGroup

  • onMeasure

  • onLayout

  • onDraw

  • onTouchEvent

  • dispatchTouchEvent

  • 自定義屬性

6.1.4 影片和手勢

  • View影片

  • 屬性影片

  • layoutAnimation視圖影片

  • 手勢檢測(GestureDetector)

  • 縮放手勢檢測(ScaleGestureDecetor)

6.1.5 網路

  • 請求網路

  • 決議資料

6.1.6 圖片加載

  • 本地圖片

  • 網路圖片

  • 壓縮圖片

  • 多圖串列

  • DiskLruCache

6.1.7 Handler

  • Looper

  • Message

  • MessageQueue

  • 記憶體泄漏

  • ThreadLocal

6.1.8 Android各版本新特性

  • Android5.0

  • Android6.0

  • Android7.0

  • Android8.0(O)

  • Android9.0§

  • Android10.0(Q)

  • Android11.0?

6.1.9 其他

  • adb常用命令

  • 檔案和資料庫

  • 異步執行緒池

  • Resources

6.2 開源庫使用

  • Retrofit/OKhttp

  • RxJava

  • Glide

  • 注解框架

  • Jetpack

6.3 性能優化

6.3.1 快-流暢的體驗

  • 布局優化

  • 繪制優化

  • 記憶體優化

  • 啟動優化

  • 其他

6.3.2 穩-穩定

  • 避免記憶體泄露

  • 避免崩潰

6.3.3 省-省電/流量

  • 使用JobScheduler調度任務

  • 使用懶惰法則

6.3.4 小-安裝包小

  • apk構成

  • 包體優化

7. Android進階

7.1 核心知識點

7.1.1 多行程

  • Binder

  • AIDL

  • Messenger

7.1.2 Activity難點

  • onSaveInstanceState()和onRestoreInstanceState()

  • intent-filter匹配規則

  • 生命周期

  • 啟動模式

  • Activity啟動程序

  • App啟動程序

7.1.3 Service難點

  • startService流程

  • bindService流程

7.1.4 BroadcastReceiver難點

  • 注冊/發送/接收作業原理

7.1.5 ContentProvider難點

  • ContentProvider啟動程序

7.1.6

  • View繪制

  • 事件分發

  • 訊息佇列

  • AsyncTask原理

  • RemoteViews

  • Window和ViewRootImpl

7.2 開源庫原理

  • OkHttp

  • Retrofit

  • RxJava

  • Glide

  • LeakCanary

  • GreenDao

  • ARouter

7.3 Gradle

  • 編譯

  • 混淆

  • 簽名

  • Groovy

  • Gradle構建流程

  • GradlePlugin

  • Gradle構建優化

  • App構建程序

  • 差異化打包

7.4 初級架構

  • 設計模式

  • MVC,MVP,MVVM

7.5 JNI

  • JNI基礎

  • NDK基礎

7.6 動態化

7.6.1 前置知識

  • Android打包流程

  • Java位元組碼

  • GradlePlugin

  • TransformAPI

  • ASM

7.6.2 熱修復:nuwa&Tinker

  • 經典-64k問題

  • dex分包

  • MultiDex優化

  • findClass原理

  • QQ空間熱補丁方案

  • Nuwa應用層實作

  • NuwaGradle

7.6.3 插件化:VirtualAPK

  • 加載類

  • 資源訪問

  • 生命周期管理

7.7 編譯插樁

  • AOP

  • ASM

7.8 Framework

7.8.1 系統服務

  • Zygote啟動

  • Android系統啟動

  • ServiceManager啟動及作業原理

7.8.2 應用行程

  • 啟動流程

  • 啟用Binder機制

  • Application初始化流程

  • Context

7.8.3 UI體系

  • 顯示原理

  • UI執行緒啟動

  • 螢屏重繪機制

  • surface

  • vsync

7.8.4 行程通信

  • Binder

  • IPC通信流程

  • Binder物件跨行程傳遞

  • OneWay機制

7.8.5 執行緒通信

  • 訊息佇列

  • 訊息傳遞機制

  • Handler訊息延遲實作

  • IdleHandler原理

  • 訊息屏障

  • ThreadLocal原理

7.8.6 其他

  • 跨行程傳遞大圖片

  • 四大組件啟動原理

8. 領域專家

8.1 性能優化方向

  • 穩定性優化

  • 啟動速度優化

  • 繪制優化

  • 記憶體優化

  • 包體積優化

  • 網路優化

  • IO優化

  • 存盤優化

  • 耗電優化

8.2 基礎架構方向

  • Android工程實踐

  • Gradle自動化構建

  • 編譯插樁技術

  • Android架構

  • Android熱修復

  • Android插件化

  • Android核心原始碼

8.3 NDK、音視頻

  • C

  • C++

  • JNI基礎

  • 編譯原理與語法基礎

  • Linux基礎

  • 熱修復

  • Gif圖實作

  • 音視頻基礎

  • ffmpeg

  • WebRTC

  • opengl

  • vulkan

  • opencv

8.4 大前端

8.4.1 前端基礎

  • HTML

  • CSS

  • JavaScript

8.4.2 Flutter(??)

  • Dart入門

  • Flutter入門

  • 開發

  • 工程管理

  • 線上運維

  • 發布

  • 測驗除錯

8.4.3 其他

  • ReactNative

  • 小程式

  • 性能優化

9. 其他Android相關

9.1 Koltin(??)

9.1.1 基礎部分

  • 內置型別

  • 型別初步

  • 表達算式

  • 函式進階

  • 型別進階

9.1.2 高級部分

  • 泛型

  • 反射

  • 注解

  • 協程

本文在開源專案:https://github.com/Android-Alvin/Android-LearningNotes 中已收錄,里面包含不同方向的自學編程路線、面試題集合/面經、及系列技術文章等,資源持續更新中…

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

標籤:其他

上一篇:Android播放音樂時,在設定中調節鈴聲大小或者設定鈴聲的時候提示音與音樂一起播放

下一篇:qt chartview 多重背景

標籤雲
其他(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