GSON序列化时排除字段的几种方式


使用transient


这个方法最简单,给字段加上 transient 修饰符就可以了,如下所示:

单元测试用例:

使用Modifier指定


这个方法需要用GsonBuilder定制一个GSON实例,如下所示:

单元测试用例:

使用@Expose注解


注意,没有被 @Expose 标注的字段会被排除,如下所示:

单元测试用例:

使用ExclusionStrategy定制排除策略


这种方式最灵活,下面的例子把所有以下划线开头的字段全部都排除掉:

单元测试用例:

参考链接


GSON序列化时排除字段的几种方式

Android 4.4 前端调试

前端开发的同学通常会在Chrome的开发者调试工具中来对CSS和js进行即时调试和查看效果,如下图一样,对比调试的好处谁用谁知道。nuiqye.png!web

但是,当我们调试混合模式下通过Webview来调用页面的App时就不能使用这种方法啦。在 Android4.4下,原来PC上的调试体验可以完整继承下来,在PC打开调试工具,手机屏作为视图承载者能即时地显示出样式调整的变化。

让我们来一起看看怎么使用这种调试方法。打开手机=》设置=》开发者选项,进入到如下界面:FnUvqy.png!web

在这个界面上,我们可以看到“USB调试”和“ADB网络调试”,这两种调试模式在使用之前必须勾选打开。

在使用调试工具之前,我们还要确认以下几点:Chrome升级到最新版本、我本机Chrome的版本是 35.0.1862.2 dev-m ,可以在Chrome浏览器地址栏中输入“chrome://chrome/”查看当前Chrome的版本号;PC上安装ADB工具,在命令行中键入 “adb version”以查看adb版本。

这里我们以调试手Q应用中心线上首页为例

1、打开手机QQ=》动态=》应用宝

2、打开Chrome浏览器,在浏览器地址栏输入:chrome://inspect/#devices ,如下图,选中红框处的复选框AJBJ7n.png!web

3、在对应设备的下方会出现正在显示的页面,如下图所示,点击inspect链接,进入Chrome的调试模式

FFrQF3z.png!web

剽窃链接: Android 4.4 让前端调试也能这么酷

Android下WebView中Java与JavaScript通信

背景介绍


Android下面WebView开发,有时候需要调用底层的一部分接口,而这部分接口只有Android的SDK才提供相关的功能,这个时候就需要进行Java与JavaScript通信。

例子


  1. 生成JavaScript调用Java函数的接口类
  2. 开启 JavaScript支持,并向WebView注册接口
  3. Html中调用接口例子
  4. 销毁的时候,反注册接口,避免内存泄漏
  5. 销毁的时候,WebView从父容器中移除,避免内存泄漏

完整的例子代码如下(包含WebView的XML布局文件,请自行生成):

Kindle Paperwhite查看MAC地址

背景


路由器设置了MAC地址白名单,如果需要联网必须先得到设备的MAC地址,然后添加进入白名单。

操作


1.点击主屏幕上面的"三道杠",在弹出的菜单中选择“设置”
Kindle_Mac

2.设置页面中,继续点击主屏幕上面的"三道杠",在弹出的菜单中选择“设备信息”

KindleSettingPage

Kindle Paperwhite 截屏

操作


打开kindle Paperwhite阅读器,两个手指同时按对角线,左上+右下 或 右上+左下(见下图)

会看到屏幕闪了一下,表示截图就已经完成了.
Kindle_ScreenShot

那么截取的图片保存在什么地方呢?下面我们就来把图片取出来。使用数据线连接电脑和kindle Paperwhite阅读器。在我的电脑中找到新出现的移动设备,也就是kindle Paperwhite阅读器。Kindle_Disk

打开该磁盘,可以看到根目录下面就是刚才截取的图片。

Kindle_Screenshot_Path

参考链接


  1. Kindle Paperwhite 如何截屏?
  2. kindle Paperwhite阅读器如何快速截屏/截图

gradlew常用命令

  • ./gradlew -v 版本号
  • ./gradlew clean 清除工程目录下的build文件夹
  • ./gradlew build 检查依赖并编译打包

这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令 assemble, 如

  • ./gradlew assembleDebug 编译并打Debug包
  • ./gradlew assembleRelease 编译并打Release的包

除此之外,assemble还可以和productFlavors结合使用,比如定义了 installRelease ,uninstallRelease 两个productFlavors,则可以如下命令:

  • ./gradlew installRelease Release模式打包并安装
  • ./gradlew uninstallRelease 卸载Release模式包

gradle编译脚本需要重新下载gradle问题

使用gradlew来build项目时,总是需要下载gradle-2.8-all.zip。但是gradle-2.8-all.zip非常大,有60MB左右,而服务器又在国外,因此经常各种下载失败。

从本地安装的方法如下:

  1. 先下载gradle-2.8-all.zip包。
  2. 把下载好的zip包放到{project.dir}\gradle\wrapper目录下(也就是跟gradle-wrapper.properties 同一个目录)修改{project.dir}\gradle\wrapper\gradle-wrapper.properties文件。如下:
  3. 然后就运行gradlew build就行了。
  4. 安装好gradle之后把gradle-wrapper.properties改回来就行了

"gradlew build"报告错误"Could not find tools.jar"

使用Android Studio打包工程的时候,一直是成功的,但是当使用gradlew build来打包工程的时候,一直报告错误"Could not find tools.jar"。网上搜索了一下,应该是“JAVA_HOME”变量设置不正确,或者没有设置导致的,只需要设置“JAVA_HOME”指向正确的JDK目录即可。tools.jar 在JDK的lib目录下面。JRE是不存在这个JAR包的。

使用CMake(windows vs2015)

学习使用CMake,简单记录一下学到的东西:

CMake使用自己的语法对工程进行配置,方便在各个平台编译。

windows上,安装了CMake后,有gui界面,操作起来很方便。

1.打开gui,选择源码目录(对应${PROJECT_SOURCE_DIR})

2.选择生成目录,最好是${PROJECT_SOURCE_DIR}/build,防止生成文件跟源码搞到一起。

点击configure,偶尔需要两次。configure完工后,去build目录下已经可以看到VS工程文件,打开就可以慢慢调了。

 

CMake要求不多,编译目录下需要有CMakeList.txt,CMake根据CMakeList酌句执行。

这里贴一个用到的CMakeList.txt,并简单注释(目前理解还不够,仅仅是配置对应了vs的哪一项)

下面是一篇极好的CMake学习文档,CMake practice

 

fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突-解决

编译项目,遇到了这个问题

查了很多地方,解决方案是:

1.右键项目,属性,最顶端,配置为x64或者x86(如果没有该选项就新建)

2.链接器-高级,目标计算机选为一致的

运行还是会报这个错误

最后发现

3.链接器-命令行

最底部有一条指令,修改为一致的机型就可以了