# 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")