Git常用命令以及常见问题处理

Mac下使用git进行操作时,总是会提示输入用户名和密码,特别蛋疼,今天查了一下如何让系统记录我们的用户名和密码
git config --global credential.helper store
使用这个会在当前用户根目录下创建一个.git-credentials的文件用于明文保存用户名密码及相关链接。 OK试试吧,看看系统是不是自动记录了你的用户名和密码

阅读全文

apktools反解析中的异常处理

最近在改打包脚本,有一个需求是想根据渠道来修改AndroidManifest.xml文件,查了一些文档,基本上是没有什么好的办法,最后只能上apktools进行反解析,然后进行回编译。然而使用的apktools进行反编译时,遇到了以下异常。google了一下,并从apktools官网查了一下文档了解到次异常是由于反编译的apk文件中使用了系统的资源,导致了反编译时找不到此资源。
apktools反编译工具反解析的时报如下异常

想要解决此异常,其实只需要把系统的资源的导出来用就行, 需要的资源在framework-res.apk中,framework-res.apk一般存放于手机的/system目录下。下边晒官网的解决方式。
apktools官网

阅读全文

Proguard那些事儿

Proguard功能

1
2
3
4
- 压缩(Shrink): 侦测并移除代码中无用的类、字段、方法和属性.
- 优化(Optimize): 对字节码进行优化,移除无用的指令.
- 混淆(Obfuscate): 使用a,b,c,d这样简短而无意义的名称,对类,字段和方法进行重命名.
- 预校验(preverify): 在Java平台上对处理后的代码进行校验.

阅读全文

Mac上查看文件的编码格式

Mac上竟然真心不知道改怎么查看一个文件的编码格式,于是乎google了一把,查到了一个比较简介的命令:enca

  1. 查看你的系统有没有安装此命令,直接在终端执行enca命令,查看
  2. 如果没有安装,直接brew install enca即可,安装完毕即可使用。(不要问哥brew是什么)

阅读全文

IDEA导出可执行jar

背景原因

Android Studio创建了Java的Module,想导出可执行jar包,但是直接执行了jar的Task发现其似乎没有让选择MainClass的选项。于是乎,用jar命令将编译生成的class文件进行打包生成jar,病指定了manifest文件。
可悲的是: 使用java -jar xxx.jar 运行此命令时,却发现直接诶报错。查了一下原因应该是环境变量设置的有问题。由于不太熟悉jar命令,所以直接放弃了这种方式。想用其他方式来生成可执行jar:

阅读全文

Shell相关

  1. 获取数据的长度

    1
    2
    array=(1 2 3 6 7)
    echo ${#array[@]}

阅读全文

打包脚本梳理.md

总体原理

1
2
3
4
5
6
7
8
st=>start: Start
e=>end: End
op1=>operation: 获取渠道信息:\n
op2=>operation: 获取git源码:\n
op3=>operation: 替换gradle编译脚本:\n 用服务器的autoPkg.gradle脚本\n 替换代码中的autoPkg.gradle脚本
op4=>operation: Start build 开始编译
op5=>operation: 注入渠道信息\n重新进行签名打包\n:genchal.sh执行
st->op1->op2->op3->op4->op5->e

阅读全文

Android自定义分包(MultiDex 手动指定 maindexlist)

http://eyyoung.github.io/2014/12/13/android-multidex-custom-mainldexlist/

阅读全文

在hexo中无痛使用本地图片

http://www.tuicool.com/articles/umEBVfI

阅读全文

Android Patch实践

常见的热补丁方案

  • Dexposed 方法级别的热修复:对Android系统版本,虚拟机类型有一定限制
  • Andfix 方法级别特修:没有深入了解,jni的方案,应该也是存在兼容性问题

阅读全文