1. 爲什麼要用ButterKnife
2. ButterKnife原理
1. 爲什麼要用ButterKnife
- 使用註解代替findViewById和事件綁定,簡化代碼,節省開發時間
- 能夠方便的處理Adapter中的ViewHolder綁定的問題
- 使用過程中不會影響app的運行效率和性能(編譯時註解)
- 代碼更清晰,可讀性更強
2. ButterKnife原理
實現原理
ButterKnife的原理就是利用註解和註解處理器針對每個Activity生成一個相對應的類,將原本需要手動編寫的findViewById的view綁定代碼和點擊事件監聽及資源id的綁定邏輯,利用註解處理器自動生成代碼。
ButterKnife的實現步驟:
- 定義註解
- 編寫註解處理器(Java項目)
- 掃描所有的ButterKnife註解
- 根據文件將註解分開
- 生成輔助類文件,調用findViewById方法,綁定View
- 在app中使用註解,並綁定當前的Activity即可使用
3. git
此文非git的面試題,主要寫一下TortoiseGit的操作。具體的Git分支管理策略普通開發人員用不到,此處不表。
3.1 集中式vs分佈式
-
集中式版本控制系統
版本庫是集中存放在中央服務器的,幹活的時候都是用的自己的電腦,所以要先從中央服務器獲取最新版本,然後幹活,代碼寫完之後再將相應代碼提交到中央服務器。必須聯網才能夠clone和push。
-
分佈式版本控制系統
個人電腦也可以有一個完整的版本庫,每個人在各自的電腦上編寫代碼,提交到本地的版本庫,然後同步到服務器,其他用戶也是一樣,在本地工作,不斷給服務器交換最新修改。
3.2 TortoiseGit的安裝
命令行之前寫過一次,本次不寫,只寫圖形化的一些操作。
-
首先準備兩個安裝包,git的安裝程序和TortoiseGit的安裝程序
-
先安裝git的安裝程序,一路下一步即可,安裝完成後,所有程序中能看到Git文件夾,右鍵能看到Git_bash_here的菜單
-
安裝TortoiseGit,一路下一步即可,安裝完成後,右鍵能看到如下的菜單
-
TortoiseGit設置用戶名和郵箱
右鍵->TortoiseGit->Settings->Git,右側就能看到User Info,填寫下用戶名和郵箱即可。
3.3 TortoiseGit的使用
Git和SVN功能類似,clone,push,pull等功能基本沒有區別,Git的強大之處主要在於分支的操作
開發者在本地建立自己的分支,編寫提交代碼,在未push到遠端時都不會影響項目代碼,而本地也可以維護一個分支,有自己的提交記錄,開發完成後再合併到主分支,push到遠端即可
-
Git clone
右鍵->TortoiseGit->Git clone,填入服務器地址即可拉取遠端代碼
-
新建分支(本地)
右鍵->TortoiseGit->Create Branch
輸入新分支名字,確定即可創建新的分支
-
本地開發,提交到本地
右鍵->Git Commit(後會跟當前分支名)
-
切換分支
右鍵->TortoiseGit->Switch/Checkout
選中本地的主分支,然後確定即可切換到主分支
-
合併分支
右鍵->TortoiseGit->Merge
選擇需要合併到主分支上的分支名稱,確定
-
push
將本地合併完的內容push到遠端對應的分支
右鍵->TortoiseGit->push
push上去之後,showLog即可看到對應的日誌,從分支的提交記錄能看到先提交到NewBranch然後和Master合併的
-
show Log
右鍵->TortoiseGit->show Log,這樣就能看到當前分支的提交記錄
-
刪除分支
前半部分和切換分支一樣右鍵->TortoiseGit->Switch/Checkout
分支名字後面,點擊打開分支引用,在分支上右鍵,即可重命名和刪除分支
-
更新版本庫
從安全的角度說,提倡Fetch然後Merge
pull(拉取):從遠程拉取最新代碼併合併到本地庫
Fetch(獲取):從遠程拉取最新代碼到本地,並不會Merge
-
比較文件差異
選中文件,右鍵TortoiseGit->diff,可以看到當前這個文件本次修改了哪些內容。
-
Git衝突解決
衝突是避免不了的
做到以下幾步能避免大部分Git衝突
- 明確的代碼提交規範
- 及時獲取新版本代碼
- 修改後及時提交
Git衝突:
- 兩個人同時修改同一個文件名,其中一個人提交後,另一個獲取後再使用(商定好文件名)
- 內容衝突,拉取邏輯後,解決衝突後再提交