电脑升级到i9-9900K感受

今年年初,我把我电脑从 i5-7400 升级到 i9-9900K,也就是从 4 核心 4 线程最高 3.6 主频的 U 升级到 8 核心 16 线程最高主频 5.0 主频的U。

我把 i9 超频到全核心 5.0G

在工作中也用了一个多月了,说说我在使用的过程中感受到的提升吧,我其实经常进行 App 的打包去验证问题,我就以这个场景说明一下问题

运行命令

/gradlew clean
/gradlew :cc-start:assembleDebug --no-build-cache

新电脑用时

旧电脑用时

差了 42秒,别看这 42秒不重要,有时候验证一个问题,都是需要清洁构建,我曾经试过验证一个问题一天需要构建十几次,能省下不少时间。同时,因为打包并不能把新U所有的性能压榨出来,这个时候我是可以做别的工作的,但是旧的U是已经完全卡死了

接着我运行了更吃 CPU 的打包场景

继续阅读“电脑升级到i9-9900K感受”

What’s New in Android Studio UI Design and Debugging Tools 摘录

  • Layout Editor
    • 为 ContrainsLayout 增加上下文菜单
    • 增强预览功能
    • 增强 ContraintLayout 在界面编辑器上的编辑能力
  • Navigation Editor
  • Resource Manager
    • 批量导入
    • 设置限定(就是 zh)
    • 资源归组
    • SVG 批量导入成 VectorDrawable
    • 支持一次性预览所有布局
    • 和 LayoutEditor 集成
    • 颜色选择
  • New In Layout Inspector(还没发布)
    • Android 10 上的机器 LayoutInspector 有 Buff 加成
  • Android 10 新加的东西

Layout Editor

为 ContrainsLayout 增加上下文菜单

(02:23) 上下文菜单增加快速让 COntrainsLayout 中组件居中的菜单,其实就是以前你要拉两条线,现在点一下菜单就帮你把这两条线拉好了,总比没有好

增强预览功能

  • (03:39) recyclerView 的预览能力得到增强,也就是可以设置 demo 数据预览 item 的布局
  • (09:04) 加强 SimpleData 功能,自带几种图片集合,可以直接设置到 ImageView 预览上

继续阅读“What’s New in Android Studio UI Design and Debugging Tools 摘录”

关于 Android Development Tools

关于 Android Development Tools

视频地址 https://www.youtube.com/watch?v=8rfvfojtRss&t=1686s

  1. Google Play Service 在后台频繁运行导致的消耗(也是说,如果你选的 AVD 是没有 Google Play Service 的没有这个问题),其实这个是和手机的策略有关系的。默认情况下,在充电状态,后台运行的服务会更活跃,所以 Google Play Service 会消耗更多的 CPU 资源,如果改为非充电模式,后台就会消耗非常少的资源,它的修复方案也是这样,默认是非充电模式

  2. 带 Google 服务的 AVD 默认会在后台监听 OK Google 用于做唤醒,这个原本是由协处理器做的,模拟器上没有,所以非常消耗性能。因为大部分的人其实不需要麦克风功能,所以更改为麦克风默认关闭,修复了这个问题

  3. (36:42) 增加杀毒软件检测,如果有杀毒软件频繁扫描 build 生成的文件,将会弹框提醒(杀毒软件的确是编译克星)

继续阅读“关于 Android Development Tools”

Groovy 使用记录

更多内容参考这个极客学院教程写得很不错

一些重要的东西

Grap 相关

自定义仓库目录

如果需要改变 grape 用来下载库的目录,可以指定 grape.root 系统属性来改变默认配置(~/.groovy/grape)

groovy -Dgrape.root=/repo/grape yourscript.groovy

查看工作日志

如果想查看 Grape 的工作内容,可以将 groovy.grape.report.downloads 设为 true(比如将 -Dgroovy.grape.report.downloads=true 添加到 JAVA_OPTS 环境变量中),Grape 就能将下列信息打印在 System.error 中:

  • 开始解析一个依赖项;
  • 开始下载一个工件;
  • 重试工件下载;
  • 可下载工件的下载尺寸及用时。

JAVA_OPTS

之前为了统一使用参数,都是直接弄一个 export GROOVY="groovy -Dgrape.root=${GLOBAL_CACHE_DIR}/grapes" 然后通过 $GROOVY 执行 groovy 脚本,不是很灵活。
现在可以通过 export JAVA_OPTS="-Dgroovy.grape.report.downloads=true -Dgrape.root=/Volumes/macOSE/hangox/Downloads/test/grapes" 来全局自定参数,运行的时候就能直接使用脚本运行,不需要自定义 Groovy 命令

Groovy CliBuilder 使用

Groovy CliBuilder 使用

第一版本

直接使用 CliBuiler


def cli = new CliBuilder(usage: "运行脚本检查 dev 和 master 有没有同步")
cli.with {
    pid longOpt: 'projectId', required: true, '需要 projectId ', type: String.class
    pt longOpt: 'privateToken', required: true, '可以访问 gitlab api 的 token', type: String.class
}
def opt = cli.parse(args)

String projectId = opt.pid
String privateToken = opt.pt

继续阅读“Groovy CliBuilder 使用”

nps 部署

什么是 nps

nps 是一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。

部署nps的问题

因为使用的是 docker 配置,nps 没有配置文件的情况下启动会崩溃,如果每次都复写配置文件,有些文件又是运行之后生成的,不能覆盖,只能写个脚本在启动的时候判断是否复制配置文件,脚本如下

#!/usr/bin/env bash
if test -e '/app/nps/conf/clients.json'
then
    cp -r conf-temp/nps.conf conf
    echo '覆盖配置'
else
    cp -r conf-temp/. conf
    echo '拷贝所有文件'
fi
ls /app/nps/conf/
./nps

Android 打包所有依赖

问题缘由

有些非常老旧的项目构建方式不支持 maven,也就是没办法自动解决依赖 ,这个时候只能把所有相关的 Jaraar 都下载给对方。

问题解决

简单描述

  • 先把对方需要集成的 AAR 发布到 Mavan仓库上
  • 创建一个空Java 项目,只是依赖这个包
  • 增加 WAR打包插件,运行 WAR 作业,打包完成

继续阅读“Android 打包所有依赖”

接下来的工作

对于很多东西,开发时间不能确定,开发的时候又头疼的根本原因是对本质不了解。如果我对很多东西的本质好像对我对 Git 那么了解的话,那就当我操作的时候一点都不害怕,估计还有点小激动。

接下来的工作应该要对 Android 整个底层和 AndroidBuildTools 整个整个底层都走一遍