# Git 常用命令
~~~
1、從遠程獲取代碼
git clone git clone ssh://git@git.sankuai.com/~duoshilin/test.git
2、查看本地文件狀態
git status
綠色:添加到了暫存區
紅色:修改過但未添加到暫存區
3、提交代碼到遠程
①添加到暫存區
git add filename1,filename2
git add .
撤銷添加到暫存區
git reset HEAD filename
②提交到本地代碼倉庫
git commit -m "注釋必填"
③提交到遠程代碼倉庫
git push origin 本地分支名:遠程分支名(沒有可自動創建)
附:可進行強制提交覆蓋上次的分支
git commit --amend
git push origin 本地分支名:遠程分支名 --force
本地撤銷為push前的版本,一般用于push后發現多提交
git reset --soft HEAD~1
git status
修改
git commit -m ""
git push origin 本地分支名:遠程分支名 --force
4、分支管理
①創建并切換到新分支
git checkout -b newBranchName
//checkout 的-b參數表示創建并切換,相當于以下兩句話
git branch newBranchName
git checkout newBranchName
②查看分支
git branch
5、將本地代碼放到一個空的倉庫中
cd existing-project
git init
git add --all
git commit -m "Initial Commit"
git remote add origin ssh://git@git.sankuai.com/~duoshilin/test.git
git push origin master
~~~
也可見我的另一篇wiki: [Git](https://km.sankuai.com/page/110154314 "Git")
# ADB 命令
|
command
|
description
|
描述
|
example
|
| --- | --- | --- | --- |
|
adb devices
|
List of devices attached
|
查看已連接的設備
|
adb devices
|
|
adb install *apk\_path*
|
install app
|
安裝APP
|
adb install /user/xxx/xxx.apk
|
|
adb push *local remote*
|
copy file to origin
|
將本地文件復制到連接的模擬器或真機
|
adb push foo.txt /scard/foo.txt
|
|
adb pull *remote local*
|
copy file from origin
|
將模擬器或真機的文件復制到本地
|
adb pull /scard/foo.txt foo.txt
|
|
adb kill-server
|
kill adb server if adb command no response
|
停止adb服務,一般用于重啟服務,其他任意命令可喚醒adb服務
|
|
|
adb start-server
|
start adb server if it is not started
|
檢測adb服務是否正在運行,如果沒有運行,則啟動它
|
|
> 資源鏈接:
>
> [使用WiFi鏈接設備](https://developer.android.com/studio/command-line/adb#wireless "使用WiFi鏈接設備")
>
> [](https://developer.android.com/studio/command-line/adb#wireless)[adb命令參考](https://developer.android.com/studio/command-line/adb#issuingcommands "adb命令參考")
>
> [adb shell 命令](https://developer.android.com/studio/command-line/adb#shellcommands "adb shell 命令")
# Java中的JSON解析
### 1 FastJson
### 2 Gson
### 3 JackSon
# Java中的XML解析
### 1 DOM解析(官方提供,與平臺無關)
DOM(Document Object Model 文檔對象模型)解析的基本原理是:**將一個XML文檔轉換成一個對象模型的集合(通常稱DOM樹),應用程序正是通過對這個對象模型的操作,來實現對XML文檔數據的操作**
* **優點:**
> * **形成了樹結構,有助于更好的理解和掌握**
>
> * **解析過程中,樹結構保存在內存中,方便修改,且效率較高**
>
* **缺點:**
> * 一次性讀取整個文件,對大文件不友好,讀取較慢
>
> * 如果要讀取的xml文件過大,很容易影響解析性能且可能造成內存溢出
>
### 2 SAX解析(官方提供,與平臺無關)
SAX(Simple APIs for XML),即XML解析的簡單API(Application Program Interface 應用程序接口),采用了**事件驅動**的方式來解析XML;**與DOM不同,SAX提供的訪問模式是一種順序模式,這是一種快速讀寫XML數據的方式**
* **優點:**
> * **采用事件驅動,對內存的消耗比較小**
>
> * **適用于只處理xml文件中的數據**
>
* **缺點:**
> * 很難在同一時間內訪問到xml的多處不同的數據
>
### ~3 JDOM解析~~(Java版)~ \-- 不常用
### 4 DOM4J解析(Java版)
**1、JDOM的一種智能分支,它合并了許多超出基本XML文檔表示的功能。**
**2、它使用接口和抽象基本類方法。**
**3、具有性能優異、靈活性好、功能強大和極端易用的特點。**
**4、是一個開放源碼的文件**
~~~
public class DOM4JTest {
private static ArrayList<Book> bookList = new ArrayList<Book>();
public static void main(String[] args) {
// 解析books.xml文件
// 創建SAXReader的對象reader
SAXReader reader = new SAXReader();
try {
// 通過reader對象的read方法加載books.xml文件,獲取docuemnt對象。
Document document = reader.read(new File("src/res/books.xml"));
// 通過document對象獲取根節點bookstore
Element bookStore = document.getRootElement();
// 通過element對象的elementIterator方法獲取迭代器
Iterator it = bookStore.elementIterator();
// 遍歷迭代器,獲取根節點中的信息(書籍)
while (it.hasNext()) {
System.out.println("=====開始遍歷某一本書=====");
Element book = (Element) it.next();
// 獲取book的屬性名以及 屬性值
List<Attribute> bookAttrs = book.attributes();
for (Attribute attr : bookAttrs) {
System.out.println("屬性名:" + attr.getName() + "--屬性值:"
+ attr.getValue());
}
Iterator itt = book.elementIterator();
while (itt.hasNext()) {
Element bookChild = (Element) itt.next();
System.out.println("節點名:" + bookChild.getName() + "--節點值:" + bookChild.getStringValue());
}
System.out.println("=====結束遍歷某一本書=====");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
DOM4J
~~~
### 總結
* **DOM4J性能最好,連Sun的JAXM也在用DOM4J。目前許多開源項目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J來讀取XML配置文件。如果不考慮可移植性,那就采用DOM4J。**
* **DOM仍是一個非常好的選擇。DOM實現廣泛應用于多種編程語言。它還是許多其它與XML相關的標準的基礎,因為它正式獲得W3C推薦(與基于非標準的Java模型相對),所以在某些類型的項目中可能也需要它(如在JavaScript中使用DOM)。**
* **SAX表現較好,這要依賴于它特定的解析方式-事件驅動。一個SAX檢測即將到來的XML流,但并沒有載入到內存(當然當XML流被讀入時,會有部分文檔暫時隱藏在內存中)。**
* **JDOM和DOM在性能測試時表現不佳,在測試10M文檔時內存溢出。在小文檔情況下還值得考慮使用DOM和JDOM。雖然JDOM的開發者已經說明他們期望在正式發行版前專注性能問題,但是從性能觀點來看,它確實沒有值得推薦之處。**
> 參考文章:[https://www.cnblogs.com/longqingyang/p/5577937.html](https://www.cnblogs.com/longqingyang/p/5577937.html "https://www.cnblogs.com/longqingyang/p/5577937.html")