yarn : 无法加载文件 d:\nodejs\yarn.ps1,因为在此系统上禁止运行脚本。

 分类:Android, Java, Others, Others 阅读 (90)  yarn : 无法加载文件 d:\nodejs\yarn.ps1,因为在此系统上禁止运行脚本。已关闭评论
1月 122023
 

执行yarn android出现如下错误

解决办法:

  1. 打开“开始”菜单,搜索powershell,在powershell菜单上右键,点击“以管理员身份运行”
  2. 在打开的powershell命令行窗口中输入get-ExecutionPolicy,可以查看返回的是Restricted,这个意思是管理员权限是禁用的
  3. 在命令行窗口中输入set-ExecutionPolicy remotesigned,按照提示输入y,回车,就可以执行yarn相关命令了
 Posted by on 2023-01-12

复习一些几何知识

 分类:Others, Others 阅读 (641)  复习一些几何知识已关闭评论
11月 112022
 

1. 已知三角形三边长度,计算面积

三边长度:a, b, c

半周长:p = (a + b + c) / 2

三角形面积:S = √[p(p-a)(p-b)(p-c)] =(1/4)√[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]

2. 已知三角形各边长度,求其中某个顶点到对边的距离

三边长度:a, b, c,求a到bc边的距离ad

根据上面公式得出三角形面积,

由公式S = 1/2 (底 x 高),则ad = 2*S / bc

3. 设三角形三边分别为a、b、c,内切圆半径为r,则三角形面积=(a+b+c)r/2

4. 已知三角形两边a,b,这两边夹角C,则S=1/2 * absinC

 Posted by on 2022-11-11

树莓派gpio编程(二)声控器输入

 分类:C++, Others, Others 阅读 (1,085)  树莓派gpio编程(二)声控器输入已关闭评论
8月 222019
 
一、编程语言

使用c语言和wiringPi库

具体见树莓派gpio编程(一)控制Led灯

二、硬件连接

对于这种开关量的传感器,一般有三个针脚VCC、GND、OUT,通常情况下连接方式如下:

vcc接树莓派引脚的3.3v

gnd接树莓派的gnd

out接树莓派gpio0

三、软件编写

新建inputtest.c,并输入以下内容

四、软件编译

使用下面的命令编译程序

五、运行程序

在控制台中输入以下命令运行程序

./inputtest

六、运行结果

当发出声音,声控器被触发的时候会输出input is 1

否则输出input is 0

七、其他说明
  1. 对于避障器、测速器等开关量的传感器都可以使用此程序读取输入
 Posted by on 2019-08-22

软件开发中用到的几种图

 分类:Others, Others 阅读 (1,023)  软件开发中用到的几种图已关闭评论
8月 152019
 

一、思维导图

二、流程图

三、DFD数据流图

四、时序图

五、UML类图

 Posted by on 2019-08-15

Linux下使用dd制作树莓派系统盘

 分类:Linux, Operating System, Others, Others 阅读 (2,811)  Linux下使用dd制作树莓派系统盘已关闭评论
7月 052019
 
一、文章背景

  本文基于Ubuntu16,pi zero WH,树莓派镜像版本2019-06-20_raspbian_full

  树梅派官方推荐使用Etcher制作镜像,但是下载速度实在是太慢了,使用dd也可以搞定。

二、下载镜像

  官网镜像下载地址:https://www.raspberrypi.org/downloads/raspbian/

  首先下载树梅派系统镜像包,是一个zip文件,如:2019-06-20_raspbian_full_latest.zip

  解决zip包后得到img镜像文件,如:2019-06-20-raspbian-buster-full.img

三、准备sd卡

  将sd卡连接电脑,然后执行df -h

  拔掉sd卡后再执行一次df -h

  有变化的那一项即是sd卡的设备名称,如:/dev/sdc1

  /dev/sdc即是sd卡的主设备名,先执行下面命令卸载它的子分区

  假如还有sdc2、sdc3统统卸载掉

四、烧录系统

  执行下面的命令烧录系统

  if=后面是镜像所在的路径

  of=后面是sd卡设备名称

 Posted by on 2019-07-05

树莓派无键盘情况下配置无线网络

 分类:Others, Others 阅读 (2,381)  树莓派无键盘情况下配置无线网络已关闭评论
7月 032019
 

转载自:http://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

 

不算是什么新功能了,在树莓派3B发布后不久,树莓派官方 Raspbian 系统久加入了允许在开机前对 WiFi 网络进行配置的机制。

注意,这个方法仅适用于全新安装树莓派系统到 SD 卡之后没有做过任何 Wi-Fi 配置的情况下有效。如果你之前配置过 Wi-Fi,再用本方法系统会默认使用已有的配置而忽略这里的配置。因此建议使用前重新安装系统。

一、WiFi 网络配置

用户可以在未启动树莓派的状态下单独修改 /boot/wpa_supplicant.conf 文件配置 WiFi 的 SSID 和密码,这样树莓派启动后会自行读取 wpa_supplicant.conf 配置文件连接 WiFi 设备。

操作方法简单:将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建 wpa_supplicant.conf 文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
ssid="WiFi-A"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
 
network={
ssid="WiFi-B"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}

说明以及不同安全性的 WiFi 配置示例:
#ssid:网络的ssid
#psk:密码
#priority:连接优先级,数字越大优先级越高(不可以是负数)
#scan_ssid:连接隐藏WiFi时需要指定该值为1

如果你的 WiFi 没有密码

1
2
3
4
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=NONE
}

如果你的 WiFi 使用WEP加密

1
2
3
4
5
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=NONE
wep_key0="你的wifi密码"
}

如果你的 WiFi 使用WPA/WPA2加密

1
2
3
4
5
network={
ssid="你的无线网络名称(ssid)"
key_mgmt=WPA-PSK
psk="你的wifi密码"
}

如果你不清楚 WiFi 的加密模式,可以在安卓手机上用 root explorer 打开 /data/misc/wifi/wpa/wpa_supplicant.conf,查看 WiFi 的信息。

二、开启 SSH 服务

如果通过 ssh 连接树莓派出现 Access denied 这个提示则说明 ssh 服务没有开启。要手动开启的话,和 WiFi 配置相似,同样在 boot 分区新建一个文件,空白的即可,文件命名为 ssh。注意要小写且不要有任何扩展名。
树莓派在启动之后会在检测到这个文件之后自动启用 ssh 服务。随后即可通过登录路由器找到树莓派的 IP 地址,通过 ssh 连接到树莓派了。(有关开启 SSH 服务的详细方法

如果需要远程桌面方式操作树莓派,可以通过 ssh 安装 xrdp,再用 Windows 的远程桌面客户端连接到树莓派

这个小技巧对于没有有线网卡、没有标准 USB 接口来直连键鼠,但集成了 WiFi 的树莓派 Zero W 尤其实用。

 Posted by on 2019-07-03
6月 282018
 
1.简单介绍

Android.mk是Android源码编译系统的Makefile,用于编译系统中的C++和Java的动态库\静态库\可执行文件和apk等.
其大概格式如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4 guava
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := Calculator
include $(BUILD_PACKAGE)

##################################################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libarity:arity-2.1.2.jar
include $(BUILD_MULTI_PREBUILT)

# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

2.常用语法格式介绍

上面的示例中共涉及到三类语法
1)变量的定义,比如其中的LOCAL_PATH为定义的变量,可以在其他地方被调用
变量不是必须全部大写或者必须以LOCAL_开头,可以是其他形式的,因为安卓的编译系统会加载所有的mk文件到一个环境里面,所以定义变量应该加上一个特殊的前缀,防止覆盖一些全局的变量.
2)my-dir为mk系统中预定义的宏,通过$(call my-dir)来调用
mk系统中还定义了很多其他的宏,这些定义均在build/core/definitions.mk中,有兴趣的可以浏览一下这个文件
3)include语法包含其他的mk文件
我们可以看到示例中有一个include $(BUILD_PACKAGE),其实BUILD_PACKAGE是在buile/core/config.mk中定义一个变量,如下:
BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk
这一行代码其实是把package.mk包含到了编译步骤中,用于编译Calculator这个apk
4)shell命令

3.mk文件结构介绍

1)通常都以LOCAL_PATH开始,指定当前工程的路径,一般也是使用my-dir宏指定,如下:
LOCAL_PATH := $(call my-dir)

2)编写具体模块编译脚本
首先确定编译模块的类型,是静态c++库\动态C++库还是可执行程序,或者jar包或者apk,参见"模块编译类型定义"部分.
a. 一个mk文件中可以编译多种类型的模块,每个模块一般都是以include $(CLEAR_VARS)开始
CLEAR_VARS实际上是引用的build/core/clear_vars.mk文件,用于清除部分以LOCAL_开始的变量(不会清除LOCAL_PATH),具体可以浏览clear_vars.mk

b. 然后定义编译这个模块所需要用到的一些LOCAL_变量,比如如下:
LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4 guava  #编译apk用到的静态库
LOCAL_SRC_FILES := $(call all-java-files-under, src) # 要编译的源码
LOCAL_PACKAGE_NAME := Calculator #包名

c. include + 编译类型 结尾,如:
include $(BUILD_PACKAGE)

4.模块编译类型定义

mk系统支持多种类型的编译,这些类型都在build/core/config.mk中定义,每种编译类型由一个特定的mk文件去处理,如下是在Android4.4系统中抓取的编译类型定义.
BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk
BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk
BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk
BUILD_RAW_STATIC_LIBRARY := $(BUILD_SYSTEM)/raw_static_library.mk
BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk
BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk
BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk
BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk
BUILD_PACKAGE – 构建一个Android apk
BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk
BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk
BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk
BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk
BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk
BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk
BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk
BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk
BUILD_NATIVE_TEST := $(BUILD_SYSTEM)/native_test.mk
BUILD_HOST_NATIVE_TEST := $(BUILD_SYSTEM)/host_native_test.mk
BUILD_NOTICE_FILE := $(BUILD_SYSTEM)/notice_files.mk

5. Local变量介绍

LOCAL_PATH – 工程路径,通常为$(call my-dir),代表本目录和所有子目录

LOCAL_SRC_FILES – 项目源文件,不只是c或者java代码,也可以是apk或者so等文件,可添加多个,使用\加换行连接多个源文件

LOCAL_MODULE_CLASS – 可以为以下值:EXECUTABLES、FIRMWARE、SHARED_LIBRARIES、ETC、APPS、STATIC_LIBRARIES、NATIVE_TESTS、JAVA_LIBRARIES、FAKE、HEADER_LIBRARIES等

LOCAL_MODULE_TAGS – 在哪些系统版本下编译此项目,可以为eng、user、debug、tests、optional,optional表示在所有版本下都

LOCAL_MODULE – 项目名称

LOCAL_CERTIFICATE – 项目签名类型,可以为testkey、platform、shared、media、PRESIGNED(使用原签名),platform代表为系统应用

LOCAL_MODULE_PATH – 项目输出路径

LOCAL_PRIVILEGED_MODULE – 不设置或者设置为false,安装位置为system/app,如果设置为true,则安装位置为system/priv-app

LOCAL_MODULE_SUFFIX – module的后缀,可不设置

LOCAL_DEX_PREOPT – 是否对apk或者jar包进行odex优化,不设置代表默认优化,设置为false代表不优化

LOCAL_JACK_ENABLED – 有三种模式:full、incremental、disabled

 Posted by on 2018-06-28

svn对比文件时提示Unreadable path encountered; access denied

 分类:Others, Others 阅读 (752)  svn对比文件时提示Unreadable path encountered; access denied已关闭评论
6月 252018
 

解决方法:

修改svn项目目录下的conf/svnserve.conf

将anon-access的值由read改成none就可以了,如下:

 

gradle命令大全

 分类:Android, Java, Others, Others 阅读 (3,101)  No Responses »
6月 182018
 

一、任务相关基本命令

  1. 查看所有任务

  2. 如果你的项目有多个模块,只想查看某个模块,使用如下命令(app为模块的名称):

  3. 显示任务的详细信息

  4. 执行一个任务

二、一些可能用到的辅助任务命令,这些任务名称会显示在./gradlew tasks的执行结果中

  1. 显示项目的Android依赖树

  2. 显示项目的源码定义

  3. 显示项目的签名信息

  4. 打印子模块列表

  5. 打印项目中用到的所有依赖树

三、其他命令

  1. 查看gradle版本和构建环境信息

 

 

 

 Posted by on 2018-06-18