美文网首页
琐碎知识

琐碎知识

作者: Whyn | 来源:发表于2017-09-09 11:29 被阅读68次
  1. 使用 bintray-release上传某一个 module
    gradlew clean build module:bintrayUpload -PbintrayUser=why8n -PbintrayKey=BINTRAY_KEY -PdryRun=false

  2. 查看 git 被追踪的所有文件:From

  • master 分支
git ls-tree -r master --name-only
  • 当前分支
git ls-tree -r HEAD --name-only
  • git仓库clone默认只下载master分支,如果要抓取远程仓库其他分支,使用如下命令:
//抓取远程仓库dev分支代码
git check -b dev origin/dev
  • git推送到远程仓库origin
//推送本地master到远程仓库origin/master
git push origin master
//推送本地dev到远程仓库origin/dev
git push origin dev

//删除远程分支关联
git remote rm origin
//关联远程分支
git remote add origin git@github.com:?????/????

有时候git add xxx无法生肖,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

$ git check-ignore -v App.class
.gitignore:3:*.class    App.class
  • git 撤销本地修改
  1. 如果本地修改未暂存:git checkout -- file
  2. 如果本地修改已提交到暂存区:
//把暂存区的修改撤销掉(unstage),即回退到工作区
git reset HEAD file
//撤销工作区修改
git checkout -- file
  1. Provided 和 annotationProcessor区别 以及 compileOnly 的使用
  • annotationProcessor
    只在编译的时候执行依赖的库,但是库最终不打包到apk中,
    编译库中的代码没有直接使用的意义,也没有提供开放的api调用,最终的目的是得到编译库中生成的文件,供我们调用。
annotationProcessor 'com.whyn:injectmanifest-compiler:1.0.0'
  • provided,Android studio3.0中替换为 compileOnly
    provided 虽然也是编译时执行,最终不会打包到apk中,但是跟apt/annotationProcessor 有着根本的不同。
  1. A 、B、C都是Library。
  2. A依赖了C,B也依赖了C
  3. App需要同时使用A和B
  4. 那么其中A(或者B)可以修改与C的依赖关系为Provided

A 这个 Library 实际上还是要用到 C 的,只不过它知道 B 那里也有一个 C,自己再带一个就显得多余了,等app开始运行的时候,A 就可以通过B 得到 C,也就是两人公用这个 C。所以自己就在和 B 汇合之前,假设自己有 C。如果运行的时候没有 C,肯定就要崩溃了。

总结一下,provided 是间接的得到了依赖的Library,运行的时候必须要保证这个Library的存在,否则就会崩溃,起到了避免依赖重复资源的作用。

  • compileOnly
    compileOnlyannotationProcessorprovided 差不多,也是只在编译期进行依赖,只是 compileOnly 是用于 Java 项目(Java 插件默认集成这个功能),而annotationProcessorprovided 是用于 Android 项目。
//annotation processor module: build.gradle
compileOnly project(':injectmanifest-annotations') //only runs in compile time

//app: build.gradle
annotationProcessor project(':injectmanifest-compiler')
provided project(':injectmanifest-annotations') //assume app compile module injectmanifest-annotations,because module injectmanifest-compiler already compile injectmanifest-annotations

更多依赖配置信息,请查看:
Android Studio3.x新的依赖方式(implementation、api、compileOnly)


vim:
dt) -- 删除到)(不包含))
df) -- 删除到)(包含))

查找文件
.vimrc --> set path+=**
:find xxx

查看当前文件名:
:echo expand("%") or <Ctrl>+g

补全
^x^n -- auto complete in this file
^x^f -- for filename
^x^] -- for tag only
^n -- for anything specified by the "complete" option

: % 起始和结束范围是整个文件
:%d 删除掉整个文件内容,d是delete简写
:!javac % %表示当前文件

' ——上一次跳转前的位置
" ——上一次退出文件时的位置
[ ——上一次修改的开始处
] ——上一次修改的结尾处

我们所输入过的EX命令,vim都会自动的保存下来,在普通模式下输入 q:

:help key-notation 查看 key mapping

不允许修改文件(只读模式)::set nomodifiable == set noma
可以修改文件(读写模式):set modifiable == set ma

vim编码涉及的基本概念
encoding变量:该选项使用于缓冲的文本(你正在编辑的文件)、寄存器、Vim脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。
encoding变量的默认值与系统当前locale相同。
fileencoding变量:该选项是vim写入文件时采用的编码类型。
vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。
termencoding变量:该选项代表输出到客户终端(Term)采用的编码类型。
默认空值,也就是输出到终端不进行编码转换。

vim:
删除空行:g:/^\s*$/d
解释:^ 行开头
\s 非字符
* 0个或多个
$ 行结尾
综合:0个或多个非字符开头,一直到行结尾

相关文章

  • 琐碎知识

    使用 bintray-release上传某一个 modulegradlew clean build module:...

  • node 琐碎知识

  • JavaScript琐碎知识

    1、获取页面中元素距离屏幕四周的距离 vardiv=document.getElementById("box");...

  • 琐碎知识点

    创建线程池的三种方式: public static ExecutorService newSingleThread...

  • 琐碎的测量知识

    好久没有总结了,其实心里一致都惦记着关于测量的几件事情,拖了好久,拖到自己都要鄙视自己了,现在把几个小的知识点自己...

  • 琐碎知识点

    透明的dialog 在代码中这么设置 在上图中的dialog布局样式可自定义,在一段文字中给某部分文字加颜色可以使...

  • 琐碎知识点

    1.自定义控件时,可以通过TypedArray attrs获取布局文件中设置的属性值。再获取某一条属性值前,可以通...

  • 琐碎知识点

    文字对齐方式 文本框文字预判 视图内容显示模式 键盘显示类型 键盘类型

  • 琐碎知识点

    1、android 读取Bitmap的几种方式 1.以文件流的方式,假设在sdcard下有 test.png图片 ...

  • js琐碎知识总结

    1.with语句内只能访问对象上已经有的属性,它是不会增加新的属性的,如果要增加,必须完整写成a.age=18,同...

网友评论

      本文标题:琐碎知识

      本文链接:https://www.haomeiwen.com/subject/dntuattx.html