/blog/images/avatar.webp

Hello World

Android 打包 aar 并集成

Android 打包 aar

  1. 运行编译命令
./gradlew build

Gradle 本地集成 aar

  1. 将生成的 aar 放到 app/libs 目录下

  2. 修改 app/build.gradle 文件

android {
    ...
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    ...
    implementation(name:'aar_name', ext:'aar')
}
  1. 重新编译 app

Gradle 迁移 Maven 构建

  1. 修改 app/build.gradle 文件
android {
    ...
    repositories {
        maven {
            url 'https://nexus2.com/repository/maven/'
        }
    }
}

dependencies {
    ...
    implementation 'com.demo:demolib:1.0.0-20220211.010237-47@aar'
}
  1. 重新编译 app

git 命令详解

简单介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

git 使用和配置

Ubuntu 安装 git 命令

apt-get install git

git 配置文件

git 配置文件有三个:

  1. /etc/gitconfig 是系统级配置文件,使用 git config --system 命令进行修改。
  2. ~/.gitconfig~/.config/git/config 是用户级配置文件,使用 git config --global 命令进行修改。
  3. local_dir/.git/config 是仓库级配置文件,使用 git config --local 命令进行修改。

设置用户信息

$ git config --global user.name "username"
$ git config --global user.email username@example.com

设置 git 默认编辑器

git config --global core.editor emacs

JDK 导入 CA 证书

显示的错误信息

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

导致这个错误的原因是没有有效的证书,因此导入相应的证书就可以正常访问了。

证书可以通过网站 -> Certificate -> Details -> Export 获取。

Ubuntu 创建新用户账户

创建新用户账户

sudo useradd -s /bin/bash -m -G sudo test
  • -s /bin/bash: 将 /bin/bash 设置为新账户的登录 shell
  • -m: 创建用户的主目录
  • -G sudo: 确保用户可以使用 sudo

设置新用户账户密码

sudo passwd test

删除用户账户

userdel -r test
  • -r: 删除用户主目录

软件工程

一、软件过程

软件过程的概念

软件过程是指工作产品构建时所执行的一系列活动、动作和任务的集合.

软件过程是指软件整个生命周期,从需求获取、需求分析、设计、实现、测试、发布和维护一个过程模型.

计算机系统基础

一、处理器体系结构

CPU中的时序电路

组合电路和时序电路是什么,它们有什么区别

  • 组合电路:将逻辑门组合成一张网,所构成的计算块
  • 时序电路:逻辑门电路和反馈逻辑回路或器件(寄存器)组成

核心区别是:时序电路的输出不仅取决于当时的输入值,而且还与电路过去的状态有关;任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。

数据结构与算法分析

一、栈(Stack)、队列(Queue)和向量(Vector)

链表

单链表

双向链表

环形链表

带哨兵节点的链表

栈的基本概念

栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈的顶(top).栈也叫做LIFO(后进先出)表.

Java 基础语法

Java 概述

Java 语言概述

Java 是 SUN (Stanford University Network, 斯坦福大学网络公司) 于 1995 年推出的一门高级语言。Java 是一种面向 Internet 的编程语言,也是一种完全面向对象,安全可靠,与平台无关的编程语言。

Markdown 语法详解

简单介绍

Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML 文档。 – 维基百科


基本语法

标题

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

段落

使用空行进行段落分割