咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

【原文:behavior-changes-all】

Android 10 中加入了一些更新后的系统行为变更,这些变更可能会影响您的应用。本文档中列出的变更仅适用于以 API 级别 29 或更高级别为目标平台的应用。如果您的应用将 targetSdkVersion 设置为“29”或更高级别,则您应修改自己的应用,以适当地支持这些行为(如果适用)。

此外,请务必查看对在 Android 10 上运行的所有应用都有影响的行为变更列表。

注意:除了本页面所列的变更以外,Android 10 还引入了大量变更和限制,目的是加强用户隐私保护。要了解详情,请参阅隐私权页面。

有关限制非 SDK 接口的更新

阅读全文 »

【原文:功能和 API 概览】

Android 10 为用户和开发者引入了强大的功能。本文重点介绍面向开发者的功能。

要了解 API,请阅读 API 差异报告或访问 Android API 参考文档,查找“在 API 级别 29 添加”的 API。此外,请务必查阅 Android 10 行为变更(针对以 API 级别 29 为目标的应用所有应用)以及隐私权变更,以了解平台变更可能给您的应用带来哪些方面的影响。

安全增强功能

Android 10 引入了若干安全功能,详见以下各节摘要说明。

阅读全文 »

【原文:behavior-changes-all】

Android 10 包含一些可能会影响您的应用的行为变更。本文档中列出的变更适用于在 Android 10 上运行的应用(无论应用的 targetSdkVersion 如何)。您应该测试您的应用,然后根据需要进行更改以适当地支持这些变更。

如果您的应用的 targetSdkVersion 为 29 或更高,则您还需要支持其他变更。请务必查看针对以 API 级别 29 为目标的应用的行为变更,以了解详情。

注意:在本文档中,除了这些行为变更之外,请确保查看并支持 Android 10 隐私功能

限制非 SDK 接口

阅读全文 »

Android的日志收集主要包括JVM崩溃、Native崩溃、ANR三大类,本文主要是讨论ANR的日志。

一、造成ANR的场景

  • InputDispatching Timeout: 输入事件 5s 未处理完成,包括按键和触摸事件;日志关键字:InputDispatching Timeout
  • Service Timeout: 前台服务 20s 未处理完成,后台服务 200s 未处理完成;日志关键字:Timeout executing service
  • BroadcastQueue Timeout:前台广播 10s 未处理完成,后台广播 60s 未处理完成;日志关键字:Timeout of broadcast BroadcastRecord
  • ContentProvider Timeout:内容提供者 10s 未处理完成;日志关键字:Timeout publishing content providers

二、线下ANR日志

当ANR发生时,早期的Android系统会记录到 data/anr/ 目录中,我们线下可以导出此文件,分析ANR的原因。
旧一点的系统会记录到 data/anr/traces.txt 文件,由于多次出现ANR会有覆盖的文件,所以产商优化之后会根据时间记录每次ANR。
比如在 Android 9 查看ANR文件

阅读全文 »

2022年07月21 JDK 19 发布Rampdown第二阶段,稳定版计划在2022年09月20日发布。

新特性: http://openjdk.java.net/projects/jdk/19/

JDK 19 is in Rampdown Phase Two. The overall feature set is frozen. No further JEPs will be targeted to this release.

The stabilization repository, jdk19, is open for select bug fixes, with approval, per the JDK Release Process (JEP 3). Late enhancements are still possible, with approval, but the bar is now extraordinarily high.

阅读全文 »

问题

在维护一个长时间没更新的项目时,仅升级了 spring-boot-starter-parent 版本至 2.6.x,导致部分服务调用第三方API(用 openfeign 实现)失效。

项目创建时,以下版本都是最新的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/>
</parent>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

声明 FeignClient 服务,这个第三方接口是要求表单是 x-www-form-urlencoded 编码的。
这个版本的 Feign 默认并不支持 x-www-form-urlencoded,通过 LinkedMultiValueMap 将参数放到Body来解决。

阅读全文 »

【Table 1. Release train Spring Boot compatibility】

2022-06-23为止,以下最新的对应关系:

Release Train Boot Version
2021.0.x aka Jubilee 2.6.x
2020.0.x aka Ilford 2.4.x, 2.5.x (Starting with 2020.0.3)
Hoxton 2.2.x, 2.3.x (Starting with SR5)
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

Spring Cloud Dalston, Edgware, Finchley和Greenwich都已到达生命状态的终点,不再被支持。

现在,您已经知道了要使用哪个版本系列以及该版本系列的最新服务版本,就可以将Spring Cloud BOM添加到您的应用程序中了。

阅读全文 »

家人的 红米6Pro 用了一段时间了,一直有跟随版本升级更新系统,到 MIUI v10 ~ v12 的时候太卡了,一个最新版的微信App都跑的有点吃力(粤康码要几分钟才加载出来-_-||),所以想帮忙降级到 MIUI v9.6 版本,但这手机是有防止回滚的机制,强行线刷降级会变砖的。
经过查询,发现还是可以通过线刷降级的,要做一点点改动。

一、准备线刷包和刷机软件

  1. 线刷包sakura_images_V9.6.18.0.ODICNFD_20180817.0000.00_8.1_cn.tar.gz
  2. 线刷包最新版本v12
  3. 卡刷包miui_HM6Pro_V9.6.18.0.ODICNFD_7425fcea77_8.1.zip
  4. MiFlash(我用的是2018-5-28-0版本)
  5. miflash_unlock(用的是最新6.5.406.31版)

二、替换基带

为了解决降级而不丢失基带,需要刷入最新版本的基带。
两个线刷包解压到硬盘,把 v12images/NON-HLOS.bin 文件拷贝到 v9.6images/ 目录下(覆盖)。

阅读全文 »

MongoDb索引

注解索引

Springboot JPA 默认不开启自动创建索引,需在yml配置开启,并且只在【新创建的集合】才会生效。

1
2
3
4
spring:
data:
mongodb:
auto-index-creation: true
  1. 标注字段,在创建数据库的时候,会自动创建索引。

    1
    2
    @Indexed(unique = true, direction = IndexDirection.DESCENDING)
    private String username;
  2. 组合索引,在创建数据库的时候,会自动创建索引。

    1
    2
    3
    4
    5
    6
    7
    @CompoundIndexes({
    @CompoundIndex(name = "username_age", def = "{'username': 1, 'age': 1}", unique = true)
    })
    public class User{
    private String username;
    private int age;
    }
阅读全文 »

2022年03月22 JDK 18 发布,是 短期维护版本。

新特性: http://openjdk.java.net/projects/jdk/18/

Features

代号 更新
400: UTF-8 by Default
408: Simple Web Server
413: Code Snippets in Java API Documentation
416: Reimplement Core Reflection with Method Handles
417: Vector API (Third Incubator)
418: Internet-Address Resolution SPI
419: Foreign Function & Memory API (Second Incubator)
420: Pattern Matching for switch (Second Preview)
421: Deprecate Finalization for Removal

400: 默认编码为 UTF-8

阅读全文 »

极光的文档很详细,这里做一下笔记。

一、账号实名认证

需要账号实名认证,否则这个服务用不了,认证通过过,会赠送1000条认证。

二、创建应用

这就不记录了,简单的网页可视化操作流程,要注意的是:

阅读全文 »

现在兼容库主流都是使用了androidx,在使用 org.eclipse.paho:org.eclipse.paho.android.service:1.1.1发现依赖的LocalBroadcastManager是v4的:

1
2
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/content/LocalBroadcastManager;
at org.eclipse.paho.android.service.MqttAndroidClient.registerReceiver(MqttAndroidClient.java:450)

这个坑位避开有两个方法:

方法一

gradle.properties 加入 android.enableJetifier=true 重新编译就可以。

阅读全文 »

升级

2022-02-09 当前版本

1
2
3
4
5
6
7
8
9
10
Android Studio Arctic Fox | 2020.3.1 Patch 4
Build #AI-203.7717.56.2031.7935034, built on November 21, 2021
Runtime version: 11.0.10+0-b96-7249189 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2280M
Cores: 4
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: wu.seal.tool.jsontokotlin

点击 “检查更新” 升级到最新版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
The latest stable release of Android Studio is now available for download.
Android Studio Bumblebee | 2021.1.1 Patch 1 is a major new release and includes performance improvements, bug fixes and new features.
Intellij 2021.1.1 Platform Update
New Device Manager
ADB over Wi-Fi
Run Instrumented Tests in Android Studio using Gradle
Android Gradle Plugin Upgrade Assistant now updates API usage
Non-Transitive R classes on for new projects
Apple Silicon Support Update
Jank detection track in Profilers
Profileable app profiling support in Studio Profilers
Network Inspection and ability to capture Layout Inspector snapshots
Support for Compose semantics in the Layout Inspector
Interactive Preview
Animated Vector Drawables Preview
Updated Device picker for Design Tools
Important After updating, you need to restart Android Studio to apply any memory settings you migrate from an earlier version of the IDE.
阅读全文 »

2018年用过EMQ的2.3版本(【EMQ阿里云集群部署】),到现在2022年EMQ已经更新了好多个版本,我也需要重新学习一下。它的项目名称由emqttd改为emqx,目前emqx社区版最新是v4.3.11,完整支持 MQTT V5.0 协议规范,向下兼容 MQTT V3.1 和 V3.1.1。
这家公司它现在主推 EMQX Cloud云原生版和企业版,官网上难找到社区开源版的资料了,社区版需要去Github上查找资料,这里也是为了备忘一下,方便后续使用。

【EMQ X Broker Github仓库】
【下载 EMQ X 开源版】
【文档:快速开始使用 EMQ X】

常用命令

1
2
3
4
5
6
7
8
# Start emqx
./bin/emqx start

# Check Status
./bin/emqx_ctl status

# Stop emqx
./bin/emqx stop

默认参数

阅读全文 »

一路从10.5.5 升级到 12.9.5 后,发现项目默认启用了CI/CD Pipeline流水线,如果项目有 git push 就会触发Pipeline自动构建,构建失败会发邮件通知。
Pipeline这个东西暂时还没有研究过,【有兴趣请参考】,但我项目中无需自行自动构建和部署,所以暂时不需要,想关掉它。

Gitlab-CI使用入门

每个项目关闭

在Gitlab网页端项目的 设置 -> 通用 -> 可见性、项目功能、权限 可以关闭 Pipeline。

在项目配置文件中禁用

阅读全文 »

2017年在 Ubuntu14.04 中安装 Gitlab社区版 ,自从做过一次升级至版本 10.5.5 后,直到目前没升级过,版本落后太多,而且最近暴露的日志等漏洞也波及到Gitlab,为了安全要升级一下。

在官网得知:如果想要升级到最新版本,得一个一个版本的升级,不能跨版本升级,每个版本之间有依赖,感觉好麻烦。

之前都是下载deb包安装升级的,这次尝试一下apt升级。

注意:下面的命令都是以root的身份执行,普通用户需带sudo

一、升级Gitlab失败

阅读全文 »

【这里】 发现很多好用的软件

010 Editor

一款全新概念的十六进制编辑器,能解析和编辑一切可视的二进制文件方面功能强大,有别于传统的十六进制编辑器,特别对一些二进制文件进行分析时,简直是神器。。其最强大的功能在于支持模板和脚本操作,只要你为一种类型的二进制文件定义了模板,在以后编辑同一类型的文件的时候就能够调用原来的模板来进行自动分析文件。

Hex Workshop

一款非常专业的十六进制编辑器,功能强大的开发工具, 可以方便地进行十六进制编辑、插入、填充、删除、剪切、复制和粘贴操作, 配合查找、替换、比较以及计算校验和等命令使工作更加快捷。速度快,算法 精确,并附带计算器和转换器工具。

阅读全文 »

按照官网的 【Quick Start】 教程做一遍

一、创建工程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ mkdir electron-app
$ cd electron-app/
$ yarn init 或者 npm init
$ ls
package.json
$ cat package.json
{
"name": "electron-demo",
"version": "1.0.0",
"description": "this is demo",
"main": "index.js",
"author": "demo",
"license": "MIT"
}

# 安装electron开发依赖
$ yarn --registry=https://registry.npm.taobao.org add --dev electron
或者
$ npm --registry=https://registry.npm.taobao.org install --save-dev electron
$ ls
node_modules/ package.json yarn.lock
$ cat package.json
{
"name": "electron-demo",
"version": "1.0.0",
"description": "this is demo",
"main": "index.js",
"author": "demo",
"license": "MIT",
"devDependencies": {
"electron": "^16.0.6"
}
}

二、增加命令

package.json 增加一条 start 命令

阅读全文 »

QuarkusRedHat 的一款轻量级的 Java 微服务框架 ( MicroProfile 规范 )。

Quarkus 可以借助 GraalVM 编译成二进制文件,提供了优秀的容器化(Kubernetes)整合能力,相较于传统开发框架(Spring Boot)有着更快的启动速度、更小的内存消耗、更短的服务响应。

Quarkus的标签:RedHat / JVM / GraalVM / Vert.x (Netty) / MicroProfile / No Servlet /启动快 /占用内存小 / 容器 / Kubernetes

本文是阅读总结关键信息的笔记,更详细请阅读原文。
【如何借助 Quarkus 和 MicroProfile 实现微服务】
【英文原文:Implementing Microservicilities with Quarkus and MicroProfile】

Quarkus 实现 MicroProfile 规范微服务特性

阅读全文 »