發表文章

目前顯示的是 11月, 2019的文章

從 Youtube 學英文

Learn English in 3 Hours - ALL You Need to Speak English - YouTube https://www.youtube.com/watch?v=kCMYfcjqlvI Learn English in 30 Minutes - ALL the English Basics You Need - YouTube https://www.youtube.com/watch?v=juKd26qkNAw 2 Hours of Daily English Conversations - English Practice for ALL Learners - YouTube https://www.youtube.com/watch?v=7B2nkwGAoUc Learn English in 90 minutes - The Best of 2017 - YouTube https://www.youtube.com/watch?v=G5dViczwTXo Learn English in 90 minutes - The Best of 2018 - YouTube https://www.youtube.com/watch?v=p9SL2TuxC38 English with Lucy - YouTube https://www.youtube.com/channel/UCz4tgANd4yy8Oe0iXCdSWfA

OpenCV 玩 RTSP

使用 VideoCapture 的方式 use opencv to streaming RTSP @ 071's blog :: 隨意窩 Xuite日誌 https://blog.xuite.net/antony0604/blog/518478321-use+opencv+to+streaming+RTSP capturing rtsp camera using OpenCV python - Stack Overflow https://stackoverflow.com/questions/40875846/capturing-rtsp-camera-using-opencv-python

什麼是WSGI(Web Server Gateway Interface)

Web 框架,Gunicorn/flup/uWSGI 程序, CGI/FastCGI/WSGI 標準 的關係 - 知乎 https://zhuanlan.zhihu.com/p/25181849 解釋了CGI,FastCGI,WSGI 的由來與發展歷史 Let’s Build A Web Server. Part 2. - Ruslan's Blog https://ruslanspivak.com/lsbaws-part2/ 化整為零的次世代網頁開發標準: WSGI | 程式設計 遇上 小提琴 http://blog.ez2learn.com/2010/01/27/introduction-to-wsgi/ python中WSGI是什麼,Python應用WSGI詳解 │ 程式前沿 https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/362704/ 如果問你 WSGI 是什麼?0歲Web後端開發必看 - 每日頭條 https://kknews.cc/zh-tw/code/kbam28v.html

ESP8266 Projects專案

ESP8266 WIFI Remote Relay Switch ESP8266 WIFI Remote Relay Switch: 9 Steps (with Pictures) https://www.instructables.com/id/ESP8266-WIFI-Remote-Relay-Switch/ ESP8266 WIFI Remote Relay Switch - Hackster.io https://www.hackster.io/adachsoft_com/esp8266-wifi-remote-relay-switch-9f4ef5 ESP8266 WiFi Remote Relay Switch - Arduino Project Hub https://create.arduino.cc/projecthub/adachsoft_com/esp8266-wifi-remote-relay-switch-027139 [發案] Arduino+ESP8266家教(已結案) - 看板 CodeJob - 批踢踢實業坊 https://www.ptt.cc/bbs/CodeJob/M.1574436927.A.5C6.html 原來也有人徵家教,會了這個就可以去教人了~ ESP8266 WebServer 物聯網-wemos D1 Mini (esp8266)實驗四 -- 實驗二中的丟失尋找器改進為手機控制水泵 - IT閱讀 https://www.itread01.com/content/1545621139.html Arduino/ESP8266WebServer.h at master · esp8266/Arduino · GitHub https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WebServer/src/ESP8266WebServer.h

Android 開發

編譯 AOSP 編譯aosp模塊 - 知乎 https://zhuanlan.zhihu.com/p/33817525 bionic [bionic源碼解讀]Android線程棧大小 - 知乎 https://zhuanlan.zhihu.com/p/33562383 Gradle 安卓Gradle repository庫搜索順序 - 知乎 https://zhuanlan.zhihu.com/p/32108827 NDK NDK版本變遷 - 知乎 https://zhuanlan.zhihu.com/p/33666019 使用的libcxx android https://android.googlesource.com/platform/ndk/+/5de42e6621b3d0131472c3f8838b7f0ccf3e8963/sources/cxx-stl/llvm-libc++/libcxx/include/__config https://android.googlesource.com/platform/ndk/+/5de42e6621b3d0131472c3f8838b7f0ccf3e8963/sources/cxx-stl/llvm-libc++/Android.mk 5de42e6 這 commit 是6年前了 chromium https://chromium.googlesource.com/android_tools/+/7aa54b450fb756fecafb327faa03ae336fea3671/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/__config https://chromium.googlesource.com/android_tools/+/7aa54b450fb756fecafb327faa03ae336fea3671/ndk/sources/cxx-stl/llvm-libc++/Android.mk 7aa54b4 這 commit 是4.5年前了 其他 Android性能檢測工具 - 知乎 https://zhuanlan.zhihu.com/p/31828854 Systrace TraceVi

三個常用的Python Web框架:Django、Flask、Tornado

三個最常用的Python Web框架:Django、Flask、Tornado https://kknews.cc/zh-tw/code/r3q3n5v.html 介紹的不錯,使用者可以對這三個框架有個入門的知識。 Python Web 框架:Django、Flask 與 Tornado 的性能對比 - 簡書 https://www.jianshu.com/p/9960a9667a5c Top 13 Python Web Frameworks to Learn in 2020 https://steelkiwi.com/blog/top-10-python-web-frameworks-to-learn/

OpenCV Video I/O 架構總覽

以下為 OpenCV Video IO 的架構總覽,以及可以使用的 backends OpenCV: Video I/O with OpenCV Overview https://docs.opencv.org/3.4.8/d0/da7/videoio_overview.html 裡面有一張架構圖,能夠比較了解 video io 整體的架構 https://docs.opencv.org/3.4.8/d4/d15/group__videoio__flags__base.html 這篇有列出VideoCaptureAPIs有哪些backends可以使用 cv::CAP_ANY = 0, cv::CAP_VFW = 200, cv::CAP_V4L = 200, cv::CAP_V4L2 = CAP_V4L, cv::CAP_FIREWIRE = 300, cv::CAP_FIREWARE = CAP_FIREWIRE, cv::CAP_IEEE1394 = CAP_FIREWIRE, cv::CAP_DC1394 = CAP_FIREWIRE, cv::CAP_CMU1394 = CAP_FIREWIRE, cv::CAP_QT = 500, cv::CAP_UNICAP = 600, cv::CAP_DSHOW = 700, cv::CAP_PVAPI = 800, cv::CAP_OPENNI = 900, cv::CAP_OPENNI_ASUS = 910, cv::CAP_ANDROID = 1000, cv::CAP_XIAPI = 1100, cv::CAP_AVFOUNDATION = 1200, cv::CAP_GIGANETIX = 1300, cv::CAP_MSMF = 1400, cv::CAP_WINRT = 1410, cv::CAP_INTELPERC = 1500, cv::CAP_OPENNI2 = 1600, cv::CAP_OPENNI2_ASUS = 1610, cv::CAP_GPHOTO2 = 1700, cv::CAP_GSTREAMER = 1800, cv::CAP_FFMPEG = 1900, cv::CAP_IMAGES = 2000, cv

irasutoya 免費插畫素材圖庫

網路上常常看到一個日式風格的插畫,經過搜尋後發現是個叫做irasutoya的素材網站所提供的, 可以進入他的官網看看有各式各樣情境的插圖, かわいいフリー素材集 いらすとや https://www.irasutoya.com/ 其他參考 irasutoya 日本高品質 PNG 插畫素材圖庫,免費下載可商業使用|Zi 字媒體 https://zi.media/@ez3c/post/3aWrBc [素材] irasutoya 原創插畫圖庫@商用版權高清 PNG 圖片免費下載 - Funtory設計生活 https://funtory.tw/irasutoya/

Heroku 免費的主機服務

Heroku 免費的主機服務,參考下列幾篇文章 Heroku | 搭配 Git 在 Heroku 上部署網站的手把手教學 - Enjoy life enjoy coding - Medium https://medium.com/enjoy-life-enjoy-coding/heroku-%E6%90%AD%E9%85%8D-git-%E5%9C%A8-heroku-%E4%B8%8A%E9%83%A8%E7%BD%B2%E7%B6%B2%E7%AB%99%E7%9A%84%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E5%AD%B8-bf4fd6f998b8 用 Heroku 部署網站 | Django Girls Taipei https://djangogirlstaipei.herokuapp.com/tutorials/deploy-to-heroku/ 網站部署(使用 Heroku) 為你自己學 Ruby on Rails | 高見龍 https://railsbook.tw/chapters/32-deployment-with-heroku.html 讓免費的heroku永不休眠 | 只是個打字的 https://blog.typeart.cc/%E8%AE%93%E5%85%8D%E8%B2%BB%E7%9A%84heroku%E6%B0%B8%E4%B8%8D%E4%BC%91%E7%9C%A0/ 我用過並且值得推薦的主機服務(持續更新 2019–08–28) - Shi-Ken Don - Medium https://medium.com/@shikendon/%E6%88%91%E7%94%A8%E9%81%8E%E4%B8%A6%E4%B8%94%E5%80%BC%E5%BE%97%E6%8E%A8%E8%96%A6%E7%9A%84%E4%B8%BB%E6%A9%9F%E6%9C%8D%E5%8B%99-%E6%8C%81%E7%BA%8C%E6%9B%B4%E6%96%B0-2016-12-30-ca82791c35c2

std::thread 學習筆記

使用 std::thread 為什麼要加 -pthread g++ - Why do I have to pass "-pthread" option while using std::thread? - Stack Overflow https://stackoverflow.com/questions/46994982/g-why-do-i-have-to-pass-pthread-option-while-using-stdthread g ++ - 爲什麼我必須在使用std :: thread時傳遞「-pthread」選項? http://hk.voidcc.com/question/p-vzpcieap-vh.html (上面Stack Overflow的中文版) std::thread是C++中的一個抽象,可以使用pthread或OS的本機線程來實現

C++11 學習筆記

從 pthread 轉換到 C++11 的 std::thread 從 pthread 轉換到 std::thread https://www.cntofu.com/book/46/linux_system/cong_pthread_zhuan_huan_dao_std__thread.md 每個都有提到 Thread、Mutex、Condition variable、future、atomic pthread_create => std::thread pthread_mutex_lock => std::mutex.lock() 重新命名 std::thread 執行緒的名字 std::thread - naming your thread https://stackoverflow.com/questions/10121560/stdthread-naming-your-thread 有 linux 與 windows 的方式 如何設定windows執行緒名稱的方式 https://docs.microsoft.com/zh-tw/visualstudio/debugger/how-to-set-a-thread-name-in-native-code?view=vs-2019 Windows 10 1607 版或 Windows Server 2016 開始,支援使用 SetThreadDescription 之前的版本請用 RaiseException 的方式

如何開始經營一個部落格

參考 如何建立一個還不錯的部落格(blog) http://www.5233.space/2017/09/whyblog.html

網路上共同開發專案團隊會遇到的問題

主題:非營利遊戲團隊與動機 提到大部分非營利遊戲團隊解散或無疾而終的原因,以及如何讓一個遊戲團隊的菜鳥 融入團隊。 大部分非營利遊戲團隊解散或無疾而終的原因 經過我自己的統計,很遺憾的說,百分之九十的非營利/自願遊戲開發都終結於這種情形(人員離開)直到有群很努力又充滿狂熱的天才出現.而且這些團隊通常因為以下狀況解散: 1. 過於低估分派的工作,過份高估自己或其他人能持續完成(他們的)工作的技能. 2. 決定加入前,以為一些繁雜/底層的工作已經被別人做完了.但是進入狀況後才發現一堆事 情都還沒具體成型. 3. 想要被指導. 4. 都想做設計,使得每個人實做的方向都不一樣. 5. 都想做設計,但發現其他人(包含美術)不照他們的想法做事. 6. 絲毫感覺不到專案期限,以至於工作停留在原地. 7. 因為專案沒有回報,因此延遲沒關係,作任何(其他的)事都好過於進行專案. 8. 隨意的跳槽到另一個比較有前景的專案. 9. 成員分佈在世界各地,而且也擁有不同的時程表.導致每個人似乎都獨立運作. 10. 覺得自己是唯一認真的人.其他人只會指揮分派工作. 11. 真的下去作之前都以為那部份要等別人先完成.(比如說引擎要先完成才能開始製作美術內容) 12. 不知道從何處開始.或是隨意抓取那些自認為重要的元件. 13. 僅因為原則否定其他人的寫作風格. 14. 工作經驗差距太大. 15. 專案的組成只是靈光一閃(即興)的idea. 16. 專案發起人總是想管理. 17. 不接受有經驗人員的意見.(譬如說不要重新造輪子) 18. 看到有成果能玩才會繼續留下來,尤其是那些技術能力較低的成員. 19. 只想製作一個好引擎.卻導致專案無法完成. 20. 只是想獲取名聲. 21. 花太多時間在研究銀子彈(無法完成的技術方法).導致於什麼也沒作. 22. 只想等人員到齊才開始. 21. 只想等個專家來幫他們解決問題. 24. 目標太高,而從未將專案解構為小工作,以至於每個人都沒辦法接下工作. 25. 只是因為一個"其他人都該知道該怎麼作"想法(而發現其他人沒有)而離開. 26. 從未參與小組工作或完成專案過. 27. 成員間年齡相差過大導致溝通不良,因此造成代溝或

如何挑選新家家電,選購前該住意的事項

新家購買家電通常令人傷透腦,以下分享我的家電選購經驗與技巧,電視、冷氣、洗衣機、冰箱 電視 電視要看你客廳深度,不用一味地求大尺吋,目前主流尺寸為40吋、42吋、50吋、55吋。 不一定要買4k電視,你影片源要有4k,不然白花錢。 擔心電視的距離問題的話,就帶捲尺去賣場試距離。 電視品牌 電視牌子的話,要好就買 SONY,要便宜 BENQ 不錯。 冷氣 變頻 vs 非變頻 冷氣選購關鍵是要選變頻,雖然比較貴,長時間吹例如一次吹4~8小時,用電量少,比起非變頻,溫度降到設定溫度時,它還是一直都是火力全開的吹,相較之下,變頻冷氣幾年下來電費比較省,也可以參考節能標章是幾級的。 可以的話就買冷暖兩用,有暖氣比較好。 主臥跟客廳選購可能也不同。 冷氣品牌 冷氣牌子就 國際 日立 大金 比較多人討論,台灣日立冷氣已經不是日本的那個日立了,所以沒有想像中的日系品質,我家是買大金。 洗衣機 變頻 vs 非變頻 洗衣機就不一定要變頻 如果是放在戶外陽台容易風吹雨淋,洗衣機變頻的容易壞在控制板,而修理變頻控制板並不便宜,在於維修通常是換掉控制版主板,無修理可能性。 所以洗衣機挑CP值好 維修方便 我洗衣機買三洋媽媽樂 CP值高,要更好的可選 東芝,洗衣機日立則是很貴。 冰箱 冰箱是一直插電狀態,長期都會用電,除非是冰箱裡沒有東西,應該沒有人會三不五時會拔冰箱插頭吧!有沒有節能跟電費成高度相關,以節能標章1級為優先。 冰箱品牌 冰箱牌子我沒有研究到,我家買的是國際牌393公升,上凍下藏雙門冰箱,基本上兩人來說200~300公升,不過還是以下廚次數為主,兩天下廚一次+100~200公升,可參考 這篇 。 其他 熱水瓶/飲水機 (可選) 熱水瓶與飲水機見仁見智,我是買象印熱水瓶。 洗碗機(可選) 小兩口兩個人是有多少碗可以洗,我認為那算是孝親的商品,家裡人口多才值得考慮買。 吸塵器/掃地機器人(可選) 懶人專用,在沒錢的前提下,還是多多運動掃地有益身心健康~ 空氣濾淨機(可選) 想不到購買理由。 總結 以上這些電器都要以5~10年使用壽命去選購,畢竟沒人年年在換家電的XD 冰箱跟你家廚房大小最好要量一下,還有洗衣機跟陽台大小,買了放不進去就冏了。

C++ thread pool

C++ 並沒有提供 ThreadPool 的實作,但 boost 有實作(請看參考[1]),Github 上找到一個簡單用C++11 std::thread 時做出 ThreadPool 的例子,如下︰ C++11 ThreadPool A simple C++11 Thread Pool implementation https://github.com/progschj/ThreadPool ThreadPool.h Step 1. 透過 ThreadPool::ThreadPool() 建構子後,裡面會建立執行緒(workers.emplace_back)並放入執行緒池,並且等待事件通知(condition_variable) Step 2. 透過 ThreadPool::enqueue() 放入 task 的函式後會去通知(condition.notify_one)該開始執行了 Step 3. 收到通知(condition.wait)後就開始執行該task 用法:將你的 task 函式放進去,不用自己建立執行緒。 其他值得學習的地方:std::forward 用法 與 std::future 用法 參考 [1] boost::threadpool https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/reference/thread_pool.html [2] 基於C++11的線程池(threadpool),簡潔且可以帶任意多的參數 https://www.cnblogs.com/lzpong/p/6397997.html [3] c++ thread pool 使用解析 https://blog.csdn.net/carbon06/article/details/78171588

使用 fbs 來打包 PyQt5 apps

fbs 是一個跨平台打包 PyQt5 的工具,支援 Windows、Mac and Linux。 fbs 是一位叫 fman 的外國人寫的,這個專案可以在 Github 上找到。 fbs官網︰ https://build-system.fman.io/ PyPI︰ https://pypi.org/project/fbs/ 馬上就來用 fbs 來打包 PyQt5 的程式吧! 參考 https://www.mfitzp.com/article/packaging-pyqt5-apps-with-fbs/

Python 螢幕截圖存檔

Python 螢幕截圖有兩種方式, 1. 使用windows API     原生的api 2. 使用 PIL 中的 ImageGrab 模組     PIL模組提供的 api,猜想內部也是轉換到底層的 api,使用PIL模組好處是還可以在其他平台下使用。 用 Python 寫一個自動截圖存檔的軟體 https://eriasa.wordpress.com/2015/08/20/用-python-寫一個自動截圖存檔的軟體/ 使用 ImageGrab 模組 Python實現螢幕截圖的兩種方式 https://codertw.com/程式語言/360002/ 使用 win32gui 模組 使用 ImageGrab 模組 使用 Selenium 模組 python學習——截圖工具編寫 https://blog.csdn.net/dalongyes/article/details/10476561 使用 ImageGrab 模組 使用 win32gui 模組 幾個 Python 寫成的螢幕截圖存檔工具 TBD...

Python 學習資源

以下為Python 的影音學習資源,目錄與影片連結,以及一些我學習後的重點筆記。 目錄: 2018 python全棧3期高級開發工程師 獨家完整版 day95 多線程,異步 ✔ python全栈3 day95 01 多线程实现并发请求 https://www.youtube.com/watch?v=EDxcIPpUEoA     from concurrent.futures import ThreadPoolExecutor     pool = ThreadPoolExecutor(5)     練習 ThreadPool (Q2Day81 - 2.多线程执行) ✔ python全栈3 day95 02 多进程实现并发请求 https://www.youtube.com/watch?v=8czSKq9eKXA     協程 Coroutine     練習 協程的範例 (yield, asyncio) Q2Day81 - asyncio示例1     asyncio+request ✔ python全栈3 day95 03 异步IO模块的使用(一) https://www.youtube.com/watch?v=u89AvrO5-Mg ✔ python全栈3 day95 04 异步IO模块的使用(二) https://www.youtube.com/watch?v=r-uiR-gq1t4     Twisted 簡單範例介紹 (6.Twisted示例)     Tornado 簡單範例介紹 (7.Tornado)     gevent > Twisted > Tornado > asyncio ✔ python全栈3 day95 05 自定义异步IO模块前戏 https://www.youtube.com/watch?v=LMlgDuBm4u8     sockect client/server         connect 會阻塞(預設)         setblocking(0) 設定阻塞模式, 無數據(連接無反應, 數據未返回)會報錯     IO 多路復用 (Multiplexing),又稱「多工」         select.select() 用法與觀念 ✔

螢幕截圖軟體

列出幾個開源的螢幕截圖軟體 flameshot 官網︰ https://flameshot.js.org/ https://github.com/lupoDharkael/flameshot - 使用 Qt - 使用 C++ - 支援  Ubuntu、Other Linux 其他非開源的螢幕截圖軟體 Skitch - 支援 mac OS/Win - 由Evernote出的

濾波器 Filter 筆記

一些濾波器的雜亂筆記 Python filter https://blog.csdn.net/cookie_friends/article/details/79232595 https://blog.csdn.net/luckywang1103/article/details/80283431 lowpass filter in SciPy https://stackoverflow.com/questions/25191620/creating-lowpass-filter-in-scipy-understanding-methods-and-units python 数字信号的滤波器设计 signal.buffer https://blog.csdn.net/baidu_38804282/article/details/78288206 Python 低通滤波器 https://blog.csdn.net/daiyinger/article/details/48289587 Apply Low pass Butterworth filter in Python https://dsp.stackexchange.com/questions/49460/apply-low-pass-butterworth-filter-in-python Python Lowpass Filter https://gist.github.com/junzis/e06eca03747fc194e322 http://lpsa.swarthmore.edu/Fourier/Series/WhyFS.html Image Processing - Sobel 邊緣偵測 http://honglung.pixnet.net/blog/post/85485346 scipy doc https://docs.scipy.org/doc/scipy-0.14.0/reference/signal.html https://docs.scipy.org/doc/scipy/reference/tutorial/signal.html https://docs.scipy.org/doc/scipy-0.14.0/reference/g

Systrace 使用

Android 提供一個 systrace.py,systrace.py 是用 python 寫成的,接下來介紹如何使用 systrace。 systrace.py 位於 platform-tools 目錄 platform-tools/systrace 下 安裝 pyserial systrace.py 依賴 pyserial 模組,所以需要先安裝 pyserial。 輸入下列指令安裝 pyserial,以下列出python 2 與 python 3 的方法︰ $ pip install pyserial or $ pip3 install pyserial or $ apt-get install python-serial or $ apt-get install python3-serial 錄製資料 假如執行 systrace.py 會出現 No module serial 的話,請安裝 python 的 pyserial 模組。 這邊只能使用 python2。 $ sudo python systrace.py -o xxx.html HTML 操作 m 顯示當前選取的區塊 w s 放大 縮小 a d 向左 向右 f zoom in 到選取區塊 參考 理解和使用systrace | 風中老狼的博客 https://maoao530.github.io/2017/02/06/systrace/ 寫的很詳細 Define custom events  |  Android Developers https://developer.android.com/studio/profile/systrace/custom-events systrace/systrace.py at master · ganadist/systrace · GitHub https://github.com/ganadist/systrace/blob/master/libs/python/systrace.py pyhton 版本的 traceBegin 和 traceEnd systrace/trace.h at master · ganadist/systrace · GitHub http

Reactor 和 Proactor 的差異

以下將我學習到 reactor 和 proactor 的差異重點列出, 異步情況下(Proactor),當回調handler時,表示IO操作已經完成;同步情況下(Reactor),回調handler時,表示IO設備可以進行某個操作(can read or can write)。 首先它們都是IO復用下的事件驅動模型,然後就從同步異步這兩個點來切入概念。注意關鍵區別在於何時IO,reactor是關心就緒事件,比如可讀了,就通知你,就像epoll_wait 。proactor關心的是完成比如讀完了,就通知你。 Reactor模式,本質就是當IO事件(如讀寫事件)觸發時,通知我們主動去讀取,也就是要我們主動將socket接收緩存中的數據讀到應用進程內存中。Proactor模式,我們需要指定一個應用進程內的buffer(內存地址),交給系統,當有數據包到達時,則寫入到這個buffer並通知我們收了多少個字節。 函式庫 Reactor: libevent/libev/libuv/ZeroMQ/Event Library in Redis 底層使用 epoll Proactor IOCP (Windows IO completion port) / Boost.Asio 圖解 reactor和proactor主要是用來解決高並發的問題(ppc和tpc不能應對高並發),reactor的時序圖如下(這是最簡單的reactor,後面還有父子reactor,一個處理連接請求,一個做具體的請求操作)。 這張圖很仔細,在[1] 的回覆裡 [1] 如何深刻理解reactor和proactor? - 知乎 https://www.zhihu.com/question/26943938 [2] Reactor 和 Proactor 模式 - 程序園 http://www.voidcn.com/article/p-qeehqukm-bgd.html [3] GitHub - song0071000/SimpleReactorImplemention: Reactor Pattern Implemention https://github.com/song0071000/SimpleReactorImplemention 簡單的 Rea

Android logd 與 logcat

以下整理出 Android Logd 背後的程式流程與原理。 LogReader: 監聽/dev/socket/logdr, 當client連接上則將buffer 訊息息寫入client. 所對應的執行緒名稱為"logd.reader" LogListener: 監聽/dev/socket/logdw, 新日誌添加到LogBuffer, 並且LogReader發送更新給已連接的client. 所對的執行緒名稱為"logd.writer" 參考 Android logd日誌原理 - Gityuan博客 | 袁輝輝的技術博客 http://gityuan.com/2018/01/27/android-log/ 原始碼分析,trace 的不錯 Android log 機制 - logd 如何接收 log 數據(上) | 程序員蝦餃 https://jekton.github.io/2018/05/16/logd-writing-part1/ Android log 機制 - logd 如何接收 log 數據(下) | 程序員蝦餃 https://jekton.github.io/2018/05/17/logd-writing-part2/ logd - platform/system/core - Git at Google https://android.googlesource.com/platform/system/core/+/master/logd/main.cpp https://android.googlesource.com/platform/system/core/+/master/logd/LogListener.cpp https://android.googlesource.com/platform/system/core/+/master/logd/LogReader.cpp https://android.googlesource.com/platform/system/core/+/master/logd/LogBuffer.cpp

Android 支援的 C++

關於AndroidL到androidM的STLC++庫的改變 - 沉默寡言的騎士 - CSDN博客 https://blog.csdn.net/flytothesun/article/details/52160754 不要在ndk中使用系統預編譯好的C++庫 https://zhuanlan.zhihu.com/p/31025055 std::ndk1 與 std::__1 的差異?差別?

部落格如何寫作

部落格要如何寫作 標題要下好 寫出具有參考價值的文章 要有自己的特色 參考 為什麼我寫的部落格都沒有人看?真的只是寫爽、寫辛酸的? | 跟著工作熊玩賺部落格 https://www.blogfuntw.com/2019/10/why-writing-blog/ [替代解決方案]用FTP來解決Open Live Writer不能上傳圖片的問題 | 跟著工作熊玩賺部落格 https://www.blogfuntw.com/2019/06/ftp-olw/