- 博客(29)
- 资源 (6)
- 收藏
- 关注
原创 实现Dart版本对象存储(COS)插件
目前公司使用的是腾讯的对象存储(COS),原本想用官方提供的SDK去实现资源上传功能,但是官方并没有提供Dart版本的SDK, 去pub.dev搜了下关于cos的相关插件,也没有找到功能相对完善的插件,于是便打算手写一个Dart版本对象存储(COS)插件。
2022-10-19 14:23:00 746 1
原创 Flutter Web 在《一起漫部》的性能优化探索与实践
不久前,App 小组面临一场开发挑战,即『一起漫部』需要在 App 的基础上开发出一套 H5 版本。由于一起漫部 App 版本是使用 Flutter 技术开发的,对于 H5 版本的技术选型,Flutter Web 成为我们的第一选择对象。
2022-09-30 14:13:17 3377
原创 react-native-tab-view
@react-native-diy/tabview一个好用的 TabView 组件,主要基于@react-native-community/viewpager封装,同时配合react-native-web也支持在 Web 上使用此组件主要是由TabBar和MyViewPager两部分组成:TabBar是基于ScrollView封装而成,支持文字随着滚动一直居中,支持指示器(下划线)随着文字长度而自行变化,也支持调整指示器(下划线)的长度比率,同时也支持滚动和固定模式MyViewPager是基于@re
2020-06-13 11:39:34 3703 6
原创 Flutter的首次尝试,小独App
PeaceRead仿制小读,使用 Flutter 语言开发知识dart 语法dart 事件循环机制dart 编程规范material、cupertino 控件的使用动画系统的使用自定义控件setState 的理解pubspec.yaml 第三方插件的使用…成果 ...
2020-04-18 23:24:35 347
原创 Android-x86-6.0定制之路 - 以太网静态iP功能
需求确立描述Android-x86-6.0 仅支持以太网动态获取 IP(DHCP),现在客户要求设置静态 IP,即手动填写 ip 地址、网关、子网掩码、dns 服务器等信息。首先还是去 Settings.apk 查看是否支持此功能,很遗憾系统并不支持此功能,没法还是要去修改源码了。确认Settings.apk 添加以太网模块,包括以下功能:启用以太网、禁用以太网显示网络信息,包括 i...
2019-04-13 11:03:51 4176 3
原创 Android-x86-6.0定制之路 - 屏幕旋转功能
需求确立描述Android-x86-6.0 屏幕默认横屏展示,像 kiosk 模式的点餐机通常是立着的,也就是说需要竖屏展示。对于这个问题,以对 Android 的了解就是去设置里查找是否有支持屏幕旋转的功能,很遗憾 Android-x86-6.0 并没有支持,看来又要修改源码了。确认在 Settings.apk 里添加屏幕旋转的功能,实现屏幕方向的调整。功能实现通过查阅资料,发现了实...
2019-04-12 12:11:42 2856 16
原创 Android-x86-6.0定制之路 - 绕过USB权限弹窗实现静默授权
需求确立描述1. 我们的 App 要求接入多个外部设备,像打印机、扫码器、读卡器和 POS 机等,其中打印机和扫码器就是使用 USB 连接的。遇到的问题是,我先接入打印机,再接入扫码器,发现打印机就连接不了,必须重新插拔下才行,但是单独连接打印机或者扫码器都是正常的。后来谷歌找到相关问题:假如有两个 USB 设备 A 和 B,先接入 A,再接入 B,发现在获取设备 A 的 UsbInte...
2019-04-11 21:09:14 1742
原创 Android-x86-6.0定制之路 - 动态显示、隐藏状态栏和导航栏(广播方式)
需求确立描述当 App 进入 kiosk 模式,要求隐藏底部虚拟键、禁止下拉出现状态栏,这样保证我们的 App 一直处于系统前台运行。1. 通过getWindow().getDecorView().setSystemUiVisibility(Options)控制 SystemUi 是否可见就行了,但是并没有做到真正的隐藏,当触措屏幕的时候状态栏和导航栏还是显示出来了,显然这种实现方式并不能满...
2019-04-09 20:53:31 2645 6
原创 Android-x86-6.0定制之路 - 永不休眠功能
需求确立一般, Kiosk 模式下不管处于什么界面,都要求屏幕保持常亮的。虽然在 App 内可以通过代码实现屏幕常亮,但是现在的需求是在系统设置里增加永不休眠的功能,可勾选的实现动态修改。涉及到系统 Apk 的修改,没办法只能去修改源码了。简单整理下需求:针对 Settings.apk, 设置 -> 显示 -> 睡眠路径下添加永不休眠选项,并且开机默认选中永不休眠。功能实现源...
2019-04-09 14:23:45 2634
原创 Android-x86-6.0定制之路 - 辛酸路开始
什么是 Android-x86对于 Android,相信大家应该是非常熟悉的!对整天使用 Android 的手机我们而言,想不知道 Android 都不可能。但是什么是 Android-x86 呢?可能有少数人听说过,现在就来普及下有关 Android-x86 的相关知识。Android-x86 是运行于 x86 PC 上的 Android 操作系统,目前已经支持大部分安卓程序。Android ...
2019-03-20 14:30:34 2879 5
原创 Android-x86-6.0定制之路 - 如何管理源码
前言终于完成了 android-x86-6.0 源码的编译工作,经过简单的测试,系统正常工作,接下来就是阅读和修改源码了。为了方便修改、提交、测试源码,想着应该将源码上传到 git,但是源码过于庞大,如果将整个源码作为单个项目上传 git 的话,必将造成每次同步都非常慢。想了下,觉得应该跟官方一样采用 repo 管理源码,将源码拆成多个项目去维护。搭建 GitLab 服务想了下,还是先在服务...
2019-03-20 14:29:18 991 3
原创 Android-x86-6.0定制之路 - 如何安装x86-6.0
前言为了更好的演示如何安装 Android-x86-6.0,我选择在 VirtualBox 虚拟机上安装。在 PC 机上安装的话,跟虚拟机的操作是一样的,大家有兴趣可以尝试的。下载安装 VirtualBoxVirtualBox 官网: https://www.virtualbox.org/wiki/Downloads关于如何下载安装 VirtualBox,请参考官网教程准备 Androi...
2019-03-19 18:34:16 4091
原创 Android-x86-6.0定制之路 - 在Ubuntu 16.04.5上编译
前言由于下载的开源系统没有系统签名,所以不可能针对系统去做什么定制。首先,要去下载 Android-x86-6.0 的系统源码,再去尝试编译系统,如果编译成功并且能够正常运行的话,才能研究去定制系统。反正吧,我觉得编译系统是定制系统的第一步。不多说了,先去下载系统源码吧!安装 Git由于 Mac 自带 Git 工具,就不介绍如何安装,可以考虑升级 Git 版本使用 repo 工具下载源码...
2019-03-19 18:32:59 3173 1
原创 Ubuntu服务器的基本操作
前言由于需要定制 Android 系统,专门购买了台服务器用于编译源码,也就这样,开始接触了 Linux 服务器。在每天不断的接触下,学习到了很关于 Linux 服务器的知识,这里记录下来。设置网络查看网卡如图所示,该服务器有两块网卡 eno1 和 eno2。没有配置之前,eno2 没有显示任何网络信息表示没有启动该网卡,eno1 没设置之前也是这样的配置网卡执行以下命令编辑网络配置...
2019-03-14 18:02:32 2053
原创 打造ReactNative脚手架工程 - Detox自动化测试
前言在移动设备上进行自动化测试最困难的部分是测试金字塔的顶端——E2E。E2E 测试的核心问题是片状性——测试通常不是确定性的。我们相信,要想迎面解决这个问题,唯一的方法就是从黑盒测试转移到灰盒测试。Detox 是移动应用程序的灰盒端到端测试和自动化框架。当你的手机应用程序在真实设备/模拟器上运行时,使用 Detox 测试它,就像一个真实的用户一样,这大降低了我们对手工 QA 的依赖。D...
2019-03-03 13:46:52 2340
原创 打造ReactNative脚手架工程 - Jest单元测试
前言单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证,一般针对的是函数、类或单个组件,不涉及系统和集成。单元测试是软件测试的基础测试,进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。对于程序员来说,如果养成了对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,而且还能提高编程水平。所以说单元测试是软件开发当中不可缺少的环节。针对 RN 的单元...
2019-02-27 22:32:46 1450
原创 打造ReactNative脚手架工程 - 集成Typescript
前言思来想去,还是用Typescript来编写脚手架工程吧。为什么使用Typescript呢?Typescript 是 Javascript 的超集Typescript 让抽象清晰可见Typescript 使代码更容易阅读和理解安装安装分成两种,局部安装与全局安装,强烈建议全局安装局部安装(在项目的工作目录中)npm install typescript --save-d...
2019-02-22 18:28:41 828
原创 打造ReactNative脚手架工程 - 代码规范
前言代码规范,也算是个老生常谈的问题。如何写出优秀漂亮的代码,是每个程序员的必修课。得益于开源伟大思想,许多大厂都制定了一系列的代码规范并发布在市场上。正所谓"前人栽树,后人乘凉",我们就不必去大费周章的去定义代码规范,只要做到遵守就好了。可能我们了解了有哪些代码规范,但是在编码当中我们难以百分百的遵守,所以我们还需要一个东西去约束我们编写优秀漂亮的代码。这里就脚手架工程,从 IDE(编辑器)、...
2019-02-22 00:24:33 566
原创 打造ReactNative脚手架工程 - 目录结构
前言上节我们简单的对工程初始化作了些补充,这节我们来思考下工程文件的划分以及命名。可能我们平常开发中不会太多注重这些,但是对于有代码洁癖的我来说这是不能容忍的,我们现在来简单讨论下。什么是文件夹?文件夹以什么命令合适?文件夹多少层合适?什么是文件夹文件夹,这个问题可能问得有点傻?可能大多数人回答的是,将许多不同的文件放在一起就形成了文件夹。其实这说法是错误的,关键就在于说是不...
2019-02-17 22:43:40 1111
原创 打造ReactNative脚手架工程 - 初始化工程
搭建环境 关于 RN 的环境搭建这里就不再赘述了。详情参考官方文档新建工程使用Facebook提供的react-native-cli工具新建工程, 步骤如下:执行react-native init rndiy,生成空的工程node_modules安装成后,提示你运行工程。这里,我们在 Android、IOS 上都演示下新建空的 RN 工程就已经完成了, 是不是很简单。...
2019-02-14 12:09:53 828
原创 打造ReactNative脚手架工程 — 认识RN
关于ReactNativeReact Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,目前支持IOS和Android两大平台。React Native主张"Learn once, write anywhere",
2019-02-14 12:08:55 1564 1
原创 Git常用命令(持续更新...)
克隆项目git clone [url]显示所有本地分支git branch 显示所有远程分支git branch -r显示所有本地分支和远程分支git branch -a新建分支git branch [name]切换分支git checkout [name]合并分支git merge [name]删除分支git branch -d [name]添加目...
2018-09-15 10:21:22 286
原创 Git使用之设置SSH Key
1. 检查是否设置过SSH Keycd ~/.ssh 2. 若没有使用过SSH Keyssh-keygen3. 进入ssh目录下查看公钥cat id_rsa.pub4. 将公钥添加至账号,github或者gitlab 5. 配置用户名和邮箱git config --global user.name "xxx" #commit时显示的用户名 ...
2018-09-13 17:05:42 448 1
原创 ReactNative开发常用命令(持续更新...)
Nodenode -v #显示版本,检查node是否正确安装node src/test.js #执行src目录下test.js文件NPMnpm -v #显示版本,检查npm 是否正确安装npm install #安装package.json下所有的模块npm install react-navigation --save 或 -S #安装react-...
2018-09-12 10:10:07 358
原创 关于ReactNative如何配置ESLint,Prettier,Pre-commit Hook
ESLintESLint 是一个按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码风格,这对公司团队开发非常实用。安装1.全局安装如果你想使用ESLint适用于你所有的项目,建议全局安装ESLintnpm i -g eslint初始化配置文件./node_modules/.bin/eslint --init2.局部安装单个项目使用npm i...
2018-09-11 21:42:05 2446 2
原创 C语言学习笔记 - 错误处理、递归、可变参数、内存管理和命令行参数
C语言错误处理C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno、perror() 和 strerror()C 语言提供了 perror() 和 strerr...
2018-04-19 10:44:59 233
原创 C语言学习笔记 - 头文件
C头文件头文件是扩展名为.h的文件,包含了C函数声明和宏定义,被多个源文件上引用共享。有两种类型的头文件:程序员编写的头文件和编译自带的头文件。引用头文件的语法使用预处理指令#include可以引用用户和系统头文件。#include <file>这种形式用于引用系统头文件。#include "file"这种形式用于引用用户头文件。只引用...
2018-04-18 15:19:46 332
原创 C语言学习笔记 - 预处理器
C预处理器C 预处理器是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。所有的预处理器命令都是以井号(#)开头。 指令 描述 #define 定义宏 #include 包含一个源代码文件 #undef 取消已定义的宏 #ifdef 如果宏已经定义,则返回真 #ifndef 如果宏没有定义,则返回...
2018-04-17 14:11:37 363 2
原创 C语言学习笔记 - 文件读写
C文件读写如何打开、创建、关闭文本文件或二进制文件?打开文件我们通常使用fopen()函数来创建新文件或打开一个已存在的文件,这样调用会初始化类型FILE的一个对象,类型FILE包含了所有用来控制流的必要的信息。FILE *fopen( const char * filename, const char * mode );filename 是字符串,用来命名文件,访问模...
2018-04-16 21:36:55 390
Android-6.0广播方式动态显示、隐藏状态栏和导航栏
2019-04-09
andorid源码自动迁移脚本
2019-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人