apk转aab
一、前言 由于现在谷歌的政策已经不支持上架应用的时候直接上传apk格式的安装包了,所以我们需要打包成aab格式。然而如果开发的时候用的是Android Studio 可以直接在IDE中打包,但是有的时候会遇到需要手动打包的情况,或者是只有apk文件需要转换成aab格式,那么这篇文章就来记录一下。 二、步骤 1.克隆仓库 https://github.com/37MobileTeam/build_aab_tool.git 2.安装依赖 pip install -r requirements.txt 3.生成aab 1python bundletool.py -i test.apk -o test.aab
Flutter开发-密钥保护
懒得说废话了,简单来说就是保护写在程序中的APIKEY之类的敏感变量,提高反编译后的分析难度,同时避免直接push到远程仓库。 一、安装依赖 在项目根目录下的pubspec.yaml文件中添加envied库。 12dependencies: envied: ^1.1.1 然后运行下面的命令下载依赖。 1flutter pub get 二、使用方式 1.准备相关文件 在项目根目录下新建一个名为 .env的文件。 然后在里面写入自己的敏感数据,书写格式:KEY=VALUE。比如: 1DOUBAO_APIKEY=xxxxxxxxxxxx 然后再在lib目录下的任意位置新建一个dart文件,可以命名为env.dart,之后在文件中写入以下内容(这里依然拿上面的DOUBAO_APIKEY举例): 123456789import 'package:envied/envied.dart';part 'env.g.dart'; //一开始这里会报错,不用管,后面这个文件会自动生成@Envied(path: '.env')...
Openlist搭建私有网盘
一、前言 由于要在不同奇奇怪怪的设备和系统之间传输文件,并且还想专门整个地方放文件,在受够了主流网盘麻烦的登录和可恶的限速之后,我打算部署一个私有网盘。一开始我选择了大名鼎鼎的开源项目Alist,但是后来听说Alist在大伙不知情的情况下被公司收购了,并且有恶意收集用户隐私的嫌疑,而且就连官网也GG了,所以我打算换一个网盘项目部署。在对Alist的一片骂声中,我听说了有大佬基于原来的Alist项目重新做了一个叫Openlist项目,所以打算拿来玩玩。 二、安装 先放上Openlist的官网:Home | OpenList 文档 安装方式有几种,这里我用的是手动安装 1.下载 在GitHub上下载openlist的执行文件,注意选择好对应的版本,我的是Linux-amd64 v4.0.4 https://github.com/OpenListTeam/OpenList/releases 2.部署 直接解压得到一个名为openlist的文件,将其放置在一个常用的目录下比如 ~。 三、配置 运行命令启动,第一次启动要先授权。 1234# 授予程序执行权限:chmod +x...
低成本脑机接口方案
采集板 价格:699¥ 干电极8个 价格:200¥ 耳夹参考电极2个 注意是杜邦线接口 价格:88¥ 鳄鱼夹转杜邦线 价格:8¥ M2螺丝和螺母 价格:1¥ 帆布条 价格:3¥ 组装后的成品 组装原理: 在布条上打孔 用螺丝和螺母固定电极 用鳄鱼夹夹住螺丝的末端 将鳄鱼夹的另一端与采集板引脚连接,最下面一排中间8个引脚用于连接8个电极 连接耳夹,最下面一排最左右两个引脚用于连接耳夹 总价格:999¥ 整套采购连接 https://h5.m.goofish.com/item?forceFlush=1&id=903673339641&ut_sk=1.ZKKhcczbZFIDABYNN8dtP16s_21407387_1743388458180.copy.detail.903673339641.4083334148 以后的教程主要围绕这套设备
宿舍关灯神器鸿蒙版
一、前言 宿舍关灯神器应该是一个已经被玩烂了的项目了,我也废话不多说。本篇文章就如标题所说,教大家如何开发一个鸿蒙NEXT版的APP来对单片机进行蓝牙通信。本文的关灯器将采用ESP32作为控制器。 二、材料准备 ESP32 SG90舵机 杜邦线 5v锂电池 设备组装 舵机上红色的线是接vin(也就是esp32上的5v引脚,不同的板子叫法不同),黑色的接GND,另外一个是信号线,随便接一个GPIO引脚即可,我这里接的是12,这个要记住后面要用。 三、单片机代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include <BluetoothSerial.h>#include <string>#include <ESP32Servo.h>using namespace std; BluetoothSerial SerialBT;Servo myservo;int servoPin...
不用EDK2超简单的uefi开发环境搭建(适合业余开发)包涵启动盘制作和真机运行helloworld教程
介绍: 本文将介绍一种非常简单的uefi开发环境的搭建,不同于EDK2这种搭建方式,EDK2更适用于专业人士。下面我将介绍一种简单的适用于业余人士的开发环境搭建,以及如何写一个能在真机上运行的hello world程序。如果你仅仅是想写一个uefi引导的标准程序的话看这篇就够了。 https://kagurazakakotori.github.io/ubmp-cn/index.html有一部分借鉴了这里面的内容 工具 推荐用Linux环境,我用的是Ubuntu 必须的工具:gcc编译器,一个文本编辑器 能让你更方便的工具:qemu虚拟机(QEMU默认不带有UEFI固件,我们需要手动安装OVMF(Open Virtual Machine Firmware)软件包)GNUmake 步骤 一,基本步骤 1.安装gcc编译器 打开终端并输入 sudo apt install...
树莓派5部署yolo
一、前言 本文旨在给出在树莓派5B以及目前最新的基于Debian version: 12 bookworm的raspberrypiOS上部署yolo的教程。不同于一些过时的教程,这篇教程中的方法会强调与老方法的不同点以及需要注意的坑。 二,检测摄像头 最新的树莓派系统不需要在raspi-config中开启摄像头了,如果在raspi-config中找会发现找不到摄像头的选项。 所以安装好摄像头后直接在终端中运行 1sudo libcamera-hello -t 0 --camera 0 (这里是把摄像头装到CAM0接口) 如果能看到画面就算摄像头安装成功 编辑 三、安装库 根据官方给出的代码,我们要安装一些python的库:opencv、picamera2、ultralytics。 但是我们如果直接pip安装会发现报错error: externally-managed-environment This environment is externally managed。但是如果创建虚拟环境的话会找不到libcamera库,所以我们要执行下面的命令 1sudo mv...
我的世界红石三极管逻辑门
写作目的: 在写这篇文章之前,网上已经有很全面的在我的世界中搭建逻辑门的教程了,比如教程/基本逻辑门 - Minecraft Wiki,最详细的我的世界百科 (fandom.com)因此,做重复的事情意义不大。我在这篇文章中想通过另一种角度去实现逻辑门,正如题目,本文的侧重点是三极管而不是逻辑门。我会教大家如何构建三极管,再通过三极管构建与非门。这种方式更加贴近我们现实中的计算机逻辑门的原理,但是,这种方式相比我的世界百科中的方法略微复杂。所以本文旨在提供一种新的思路供大家欣赏,看着玩儿就行(不喜勿喷),如果真要在我的世界中搭建复杂电路的话,看百科就够了。 准备工作: 本人是在Minecraft...
OpenBCI脑电使用教程(四)--用Python直接连接cyton板
一、安装brainflow库 BrainFlow 是一个用于获取、解析和分析来自生物传感器的 EEG、EMG、ECG 和其他类型数据的库(官网:BrainFlow)。其主要特点为:支持设备种类多、支持9种编程语言、包含信号处理功能 通过pip安装 1pip install brainflow 二、代码解析 先放上官方的示例 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import argparseimport timefrom brainflow.board_shim import BoardShim, BrainFlowInputParams, BoardIdsdef main(): BoardShim.enable_dev_board_logger() parser = argparse.ArgumentParser() # use docs to check which parameters are...
鸿蒙arkts this undefine错误解决
先看报错 pending exception when js function called, print exception info: 12-24 22:27:25.471 60629-60629 C03F00/com.wby…t/ArkCompiler com.wby.autolight E TypeError: Obj is not a Valid object 编辑 报错位置在this.message赋值的时候。调试发现,this的值为undefine,这说明this并不是在任何位置调用都可以的,根据不停地查找资料我发现arkts中的this其实大有学问,下面是我查到的资料*(这里就不详细地讲解this了,有兴趣的小伙伴可以去网上系统地学习一下)*:一文带你搞懂ArkTS的this -鸿蒙开发者社区-51CTO.COM 解决方案 很简单,把process函数删掉,改成箭头函数就行了 编辑