原创 Android消息分發機制要點總結

幾個月前用安卓寫代碼時總結的一些東西,現在發出來充充數,以後要多寫寫博客了。 概述 本文主要是針對Android消息分發過程中的幾個要點: 消息隊列messageQueue構造 主線程Looper的Loop過程 Activity

原创 2019屆 字節跳動C++校招面經(一二三hr面,已拿offer)

雙非學校,大四無實習經驗,考研難民。。2019屆畢業 今年考完研之後參加的第一次面試。 現在發出面經來回饋一下前面看過的那麼多面經。 一面和二面都是同一天面的,hr在三面後的兩天後。 (不貼具體的題目了,都是些挺基礎的) 第一面(

原创 ubuntu on-my-zsh 配置

Oh-my-zsh 配置 安裝 安裝zsh sudo apt-get install zsh 將默認bash改爲zsh(重啓纔會生效) chsh -s /bin/zsh 安裝oh-my-zsh sh -c "$(c

原创 【C++】動態內存管理(三)不同的資源管理對象的實現

這裏我就直接貼代碼然後進行說明了。 拷貝型資源管理對象 對於普適性的資源,比如string、vector、array等資源,我們通常採用拷貝的方式進行資源的賦值操作 下面是這種資源管理對象的基本構造: template<

原创 【AR技術點】(三)完整的AR效果

開始工作了,留給自己寫博客和看書的時間也變少了。 最近半年更新的比較少,但是這個系列還是需要有個完結,不過不想寫的太多,因爲說的在前面都已經說過了。 這個AR實現在一年前就實現了,但是一直沒有寫博客來說一下。這個項目,中間耗時近一

原创 C++ 模版類 詳細講解

模版類定義 直接先說一下模版類的定義: template <模版類型1,模版類型2...> class 類名 { 內容 } 一個小示例如下: template<class T> class A {

原创 android 通過反射機制打印主線程消息隊列中的消息

步驟 1:通過Hook得到ActivityThread對應的Handler public static Handler hookActivityThreadHandler() {//獲取主線程Handler if (nul

原创 【C++】STL中map的詳細使用說明

說明 std::map是一個有序關聯容器,包含具有唯一鍵的鍵值對key-value。鍵使用比較函數Compare比較來進行排序。 搜索,刪除和插入操作具有對數複雜性。map通常實現爲紅黑樹。 定義於頭文件 <map> 特別注

原创 C++ 模版函數 深入淺出

假設我們是一個實驗室的學生,實驗室老闆喊你寫一個排序算法排序一個int數組 當然,以我們的聰明才智,很快的就寫好了這個函數: bool cmp(const int& a,const int& b) { //a>=b返回

原创 【C++】動態內存管理(五)使用STL容器進行大量的動態內存管理

相信我們平時使用C++的時候都會用到STL裏面的很多容器,可以發現,對於這些容器裏面的數據,當容器的生命週期到達結束的時候,裏面的數據就會被很好地釋放掉。 但是對於處於堆上和堆棧的不同數據,使用的方法也有所不同。 我們以以下的

原创 【C++】動態內存管理(一)成對使用new和delete時要採取相同形式

前面我已經非常詳細地寫了關於new和delete的底層實現原理,這裏就講一下比較輕鬆的,如何合理地去使用new和delete 和爲什麼要如此。 如果看完之後還有興趣繼續探究,可以去看我前面的博客——【C++】 深入探究 new

原创 【C++】new和delete面對簡單類型時可以不成對使用的原因

內置類型和簡單類型爲何可以不用配對? 當使用簡單類型(沒有默認析構) 比如如下代碼: void test() { int* lis = new int[100]; delete lis; } 或者只有簡單數據

原创 【C++】動態內存管理(四)智能指針(std)

智能指針總結 對於編譯器來說,智能指針實際上是一個棧對象,並非指針類型,在棧對象生命期即將結束時,智能指針通過析構函數釋放由它管理的堆內存。所有智能指針都重載了“operator->”操作符,直接返回對象的引用,用以操作對象。訪

原创 【C++】動態內存管理(二)以對象管理資源

爲什麼要用對象去管理資源? 考慮如下情況。 我們聲明一個對象A: class A { private: int value; public: A(int v):value(v) {}; A() {

原创 編寫shell腳本自動測試手機應用並存儲logcat到腳本的當前目錄

前言 今天學了一下shell腳本,感覺挺有意思的,剛好工作有個需求,用到了shell做一些測試,所以把今天學的東西總結一下。 安卓測試中,我們在android studio上肯定會知道它內置了一個logcat控件,可以打印、分類、