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”

解决 mac 上 too manay open file 问题

主要步骤

1.用 root 权限创建两个文件,也就是先执行 sudo su root,分别为
/Library/LaunchDaemons/limit.maxfiles.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxfiles</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxfiles</string>
          <string>200000</string>
          <string>200000</string>
        </array>
      <key>RunAtLoad</key>
        <true/>
      <key>ServiceIPC</key>
        <false/>
    </dict>
  </plist>

/Library/LaunchDaemons/limit.maxproc.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxproc</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>2048</string>
          <string>2048</string>
        </array>
      <key>RunAtLoad</key>
        <true />
      <key>ServiceIPC</key>
        <false />
    </dict>
  </plist>

2.加载两个配置文件

// 先卸载掉
sudo launchctl unload -w /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl unload -w /Library/LaunchDaemons/limit.maxproc.plist
// 然后才能加载
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist

自动脚本

#!/bin/sh

# These are the original gist links, linking to my gists now.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist

curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist

sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist

参考

https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
Is there a fix for the “Too many open files in system” error on OS X 10.7.1?

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