使用Protobuf Gradle Plugin创建 Protobuf-Lite

protobuf在android还推荐一种使用方式为protobuf-lite,使用protobuf gradle plugin
构建时生成代码的方式来使用protobuf

Protobuf的使用上问题,可以参考 Protobuf在Android下的使用说明

添加protobuf-gradle-plugin

在项目根目录下的build.gradle文件中修改为如下代码:

1
2
3
4
5
6
7
8
9
10
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3'
}
}
阅读更多
Android更改packageName包名

如果需要把原有的app复制一份出来,新的app使用一个新的packageName,有如下几个步骤要做:

  1. 更改Manifest.xml中的packageName
  2. 更改Manifest.xml<activity><service><receiver><provider>的name为新的完整包名,不能使用简写
  3. 更改build.gradle中的applicationId
  4. 更改所有import了本项目中的R.class语句
  5. 更改所有import了本项目中的BuildConfig.class语句

    项目资源R.class的包名是根据packageName生成的

阅读更多
Protobuf原理分析

详细分析protobuf(以下简称pb)数据序列化Tag-WireType-Value方式,对VARINT、带符号整型的详细分析,分别对int32, int64, uint32, uint64, sint32, sint64, bool, enum,fixed64, sfixed64, double, string, bytes, embedded messages, packed repeated fields, fixed32, sfixed32, float所有protobuf支持的数据类型进行说明。通过demo和验证过程,相信能帮忙到大家理解protobuf的原理。

阅读更多
Protobuf在Android下的使用说明

protobuf nano是一个比较新的Protobuf官方实现,很适合在android应用中使用,相比原来的java实现,减少代码量和方法数,原为了这个问题而用C++实现的朋友们,可以换到这个实现,避免尴尬。

阅读更多
Gradle中显示包依赖树

网上查了一些资料,要在gradle中显示dependencies依赖树,要使用dependencies命令,不过由于
顶级项目中一般我们都不定义dependency的,一般是在子项目中定义,那么可以用这种方式来写:

1
./gradlew <sub module name>:dependencies

这样就能输出依赖树了。不过如果有多个子项目的话,要一个个子项目的查非常麻烦,所以可以通过下面的方法
来输出整个项目的依赖树。

阅读更多
Svn Ignore的使用方法

查看修改svn:ignore

要修改svn:ignore要用到3个svn命令:

  • svn proplist <要查询的目录,留空就是当前目录
    显示svn属性,可以查到目录有没有设置过svn:ignore

  • svn propget svn:ignore <要查询的目录,留空就是当前目录>
    显示ignore属性svn:ignore的值

  • svn propset svn:ignore <要忽略的文件或者文件夹> <要修改的目录>
    设置ignore属性

例如:

1
$ svn propset svn:ignore "obj" .
阅读更多
一个静态网站生成工具的对比网站 - Static Generator

https://www.staticgen.com/ 是一个静态网站生成器的对比网站,有需要制作一个静态网页的朋友可以在上面找到丰富的项目。

阅读更多
绑定博客到自己的Godaddy域名

买了个自己的域名,想把Github Pages绑定到这个域名下。结合了网上的文章及Github Pages的帮助文档,整理出下面的完整设置方式。

godaddy

阅读更多
让Hexo站点在百度和Google中被搜索到

由于我的Hexo站点是部署在Github Pages上的,但Github Pages屏蔽了Baidu的爬虫,现在增加了一份代码部署在了coding.net,这样Baidu就可以正常抓取了,详细可以看Hexo站点部署到Github Pages和coding.net

收录

一个新的站点要被搜索引擎搜索到,首先就要手动将站点收录到搜索引擎里,下面主要讲述Baidu及Google搜索引擎的收录方式。

阅读更多
Hexo站点部署到Github Pages和coding.net

Github Pages屏蔽了Baidu的爬虫,百度搜索引擎没法抓取到数据。coding.net也提供了类似Github Pages的功能,Baidu爬虫可以抓到数据,Google也能抓到数据。hexo支持部署到多个仓库的能力,下面我们就来操作一下。

阅读更多