Android开发工作经历整理
一.无人机应用软件开发
- 集成大疆官网的DJIMobileSDK到AS中编写软件,操控无人机执行多个航点任务。
- 集成OpenCV库进行图像识别,通过获取参数,根据算法执行sdk,使无人机降落到机库,并执行后续的换电操作。待无人机就绪后,又可进行一键起飞。整个过程,全自动化。
- 具体内容如下图所示,黑布包裹的正方形边长为2米,中间有个小图,右上角有个大图,无人机要通过图形识别技术,自动精准的降落到正方形内部即可表示降落成功。图一属于正常降落,图二属于精准降落。
效果图:

二.学前教育软件开发
- 学前教育项目,为康佳集团旗下28所幼儿园编写学前教育软件,便于家长与老师沟通。
- 【app名称】:(椒宝、椒宝园丁版)已上线于应用宝、小米、华为、OPPO、VIVO、联想等主流开放平台2年多。
- 【app功能】
- 1.办理办理学校和公司事务
- 2.缴纳学费(与中国银行合作,每学期学费的交易流水可达4000w+)
- 3.盈利模式1(游戏组创作益智游戏,老师购买后署名,推送给家长购买)
- 4.盈利模式2(椒宝生鲜模块售卖生鲜食品,家长可使用账户余额或支付宝支付,子公司安排配送,放入附近自提柜,软件推送或短信推送)
- 5.app内容
- 考勤扫码、缴纳学费、代接代送、新生报名、考勤记录、宝贝请假、椒宝课堂、班级动态、互动动画、视频播放(儿歌、动画片、古诗词、故事、知识)、系统消息、公告消 息、好友(二维码)、群组(二维码)、儿童保护模式、客服中心、本周食谱、账户信 息、椒宝生鲜(单独的组件,买菜免费配送到指定自提柜)、抽奖大转盘、积分优惠 券、上传教案等。
- 项目中使用到的技术:
- 1》图片、音视频类库
- 1.Glide(图片加载框架,网络加载图片、本地展示图片、圆角图片、缩放图片)
- 2.Matisse(选取本地图片、视频、过滤文件类型与格式)
- 3.UCrop(裁剪图片)
- 4.ImageWatcher(图片展示、缩放)
- 5.Luban(鲁班压缩)
- 6.banner( 轮 播 图 )
- 7.surfaceView(相机扫描二维码)
- 8.GSYVideoPlayer(视频播放控件)
- 9.ijkPlayer(哔哩哔哩开源播放控件)
- 2》View相关
- 1.MyToolBar(头部ActionBar)
- 2.PayWayView(支付方式--支付宝支付、中国银行支付、余额支付)
- 3.PayPasswordView(支付密码输入键盘)
- 4.PopWindow(竖向选择)
- 5.TipsDialog(提示对话框)
- 6.AppVersionDialog(版本更新对话框、强制更新与不强制更新)
- 7.SelectOneImgDialog(选择一张图片对话框,调用系统相机拍照)
- 8.NineLuckPan(抽奖转盘)
- 9.MultiImageViewLayout(九宫格图片布局,发布动态)
- 10.AsMostRecyclerView(可显示列表允许的最大数据)
- 3》引用第三方View
- 1.SmartRefreshLayout(下拉刷新、上拉加载更多)
- 2.DragPointView( 消 息 红 点 , 可 拖 拽 )
- 3.AgentWebX5( 增 强 版 的 WebView 控 件 )
- 4.richtext(富文本解析控件)
- 5.StackLabel(流式布局标签(单选、多选、可删除))
- 6.StarView(评价星星控件)
- 7.PickerView(时间选择、联动选择)
- 8.WheelView、WheelOptions、OptionsPickerView(滚轮选择)
- 4》其它类库与集成SDK
- 1.butterknife(控件绑定)
- 2.OkGo(网络请求框架)
- 3.BaseQuickAdapter(列表通用适配器)
- 4.dagger2(对象的管理,其目的是为了降低程序耦合)
- 5.eventbus(事件发布-订阅总线,它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。
- 6.objectbox(数据库管理)
- 7.tinypinyin(联系人列表拼音排序)
- 8.jpush(极光推送)
- 9.qiniuCloud(七牛云sdk上传文件)
- 10.lifecycle(对象生命周期的监控)
- 5》第三方平台的配置
- 1.融云(单聊、群聊、消息推送)
- 2.MobTech(微信、朋友圈、QQ分享)
- 3.小米、华为、OPPO、VIVO、魅族平台的推送配置
- 6》支付
- 1.余额支付(输入支付密码、设置支付密码)
- 2.支付宝支付(网页支付方式)
- 3.中国银行支付
- 7》打包
- 1.productFlavors为应用分包 buildConfigField配置常量,来区分应用类型
- 2.配置.jks文件(配置一次)
- 3.release包通过360加固工具加固之后上线
效果图:


























三.智能制造行业,PDA应用软件开发
智能制造行业,Android PDA开发,独立对接MES、WMS、QMS、PMS 4个模块.
爱丽家居科技股份有限公司,300w项目。实现智能工厂,提升流水线作业效率。
【app 名字】:(智能制造)目前已上线,持续维护更新。
【app 功能】:
1. 入库作业:(采购入库、成品入库、五金仓入库、其它入库、物料调拨入库、简单生产入库)
2. 出库作业:(物料调拨出库、简单生产领料、销售出库、成品退库返工、采购退料、其他出库、五金仓出库、五金仓采购退料)
3. 库内作业:(库位调整、盘点、关联合批)
4. 品质管理:(来料质检、品质巡检、生产检验、最终检验、出货检验、送检、送检录入、送检确认、质检记录、压样确认、存样确认、存样管理)
5. 设备管理:(生命周期、日常保养、一级保养、二级保养、设备维修、设备技改、维修指派、技改指派、任务清单、提报清单)
6. 智能制造:(生产投料、RFID 、生产报工、上工、下工、上工记录、工位退料)
7. 条码管理:(PDA 扫描物料条码展示条码具体信息:规格、型号、库存数量等)
8. 综合查询:(条码记录 查询网络打印机打印物料条码记录,支持重打印)
项目中使用到的核心技术:
1. MVP
2. Refrofit+RXJava
3. PDF 文件在线查看
4. 自定义 View
5. 混合开发(原生+H5)
6. 蓝牙打印违法停车的罚单、上报案件、违法建筑标点等。
项目总结:
此项目对 Android 开发业务流程上提升巨大,编码上提升较小。在面对一个新需求的时候,会优先与后端人员讨论接口的设计,其次再考虑实现,开发思路越发清晰。
效果图:






四.Android数字示波器、数字万用表开发
在普源精电(RIGOL)从事Android数字示波器、数字万用表开发。
【开发专利】:1
1.【Android数字示波器项目】:
该项目为普源精电(Rigol)DHO2000-DHO4000系列数字示波器开发项目。
【项目系统】:Android
【架构4层】:Dev (设备层)、Drv (驱动层)、Api (接口层)、应用层
【参与模块】:Vertical、Horizontal、Cursor、Math、Trigger、Decode、Counter、Measure等
【负责内容】:Java 层调用 Api 层函数用于交互及数据展示。通信方式(JNI、EventBus )数据展示(MVVM、ViewModel、LiveData)
【操作方式】:触屏操作(常用手势)+面板按键操作(WatchDog)、旋钮操作、usb 外接键盘、鼠标等。
【功能】:
1.垂直(档位、偏移、信源)
2.水平(时基、偏移)
3.触发(边沿、脉宽、斜率、视频、码型、持续时间、超时、欠幅脉冲、延迟、建立保持、第N边沿、RS232、I2C、SPI、CAN、FlexRay、LIN、I2S、1553B)
4.解码(边沿、脉宽、斜率、视频、码型、持续时间、超时、欠幅脉冲、延迟、建立保持、第N边沿、RS232、I2C、SPI、CAN、FlexRay、LIN、I2S、1553B)
5.光标(手动、自动、跟踪)
6.数学运算(算术、FFT、逻辑、滤波、函数)
7.测量(最大值、最小值、峰峰值、顶端值、底端值、幅度值、高值、中值、低值、平均值、有效值、周期有效值、交流有效值、过冲、预冲、面积、单面积周期)
8.参考波形(档位、垂直偏移、水平偏移)
9.频率计(模式:频率、周期、累加。 分辨率)
10.电压表(模式:AC RMS DC AC+DC RMS 上限 下限 蜂鸣器)
11.电源分析
12.通过测试
13.搜索
14.波形录制
15.显示
16.存储
17.升级
18.辅助
19.帮助
20.关机
21.重启
22.灵动旋钮(自动:光标 > (数学运算/参考波形/解码) > 波形亮度。 手动:选择后即可操作对应模式)
效果图:


2.【数字万用表项目】:
该项目为普源精电(Rigol )一款数字万用表项目。
操作系统:Android
通信方式:2个 App (服务端+客户端)双进程通信。Socket 建立连接、EventBus+Protobuf 进行进程数据传输
数据管理:ViewModel
界面实现:JetPack Compose
开发语言:Kotlin 为主、常用 Java 工具类
开发模块:
【系统设置】
1.接口设置:网络状态、MAC 地址、VISA 地址、动态 IP 、自动 IP 、静态 IP、IP 地址、子网掩码、默认网关、DNS、USB TMC 、网络应用、网络重置
2.LXI 设置:mDNS 、主机名、服务名
3.基本设置:
语言设置(简体中文、繁体中文、英文、葡萄牙文、德文、波兰文、韩文、日文、法文、俄文、西班牙文、泰文和印尼文)
开机设置、电源状态、声音、亮度调节、显示时间、日期、时间
4.关于仪器:型号、序列号、软件版本、系统版本、构件日期
5.自测:按键检测、触屏检测、屏幕检测
效果图:


五.Android车载语音应用开发
在思必驰(AISPEECH)从事Android智能汽车开发。
【工作内容】:
基于思必驰的语音能力,控制汽车执行相关功能:车控(空调、车门、车窗、座椅、蓝牙、WIFI、屏幕亮度、媒体声音等)、音乐(QQ音乐、网易云音乐、Spotify、蓝牙音乐、USB音乐)、视频(爱奇艺)、电台(喜马拉雅)、导航(高德地图)、天气、百科、闲聊、智驾等
1.【德语POC项目】
该项目为思必驰(AISPEECHl)海外开发项目,甲方CARIAD,合同300w。
【项目系统】:Android
【架构3层】:Lite(原子能力)、DDS(语音服务)、天琴(语音业务)
【参与模块】:语音业务-Daemon/View/Adapter,车控、导航、音乐、百科、闲聊
【负责内容】:
车控(空调、车门、车窗、座椅、蓝牙、WIFI、屏幕亮度、媒体声音等)、导航(高德地图)、音乐(Spotify)、天气、百科、闲聊
【语音能力】
唤醒方位、全双工、延时聆听、跨音区交互、单轮多轮对话、免唤醒、唤醒、识别、 翻译、语义解析、消息订阅与接收。
【业务执行流程】:
通过德语操控语音进行:免唤醒、唤醒、在线识别、在线翻译、DUI在线平台语义解析 并下发、客户端API消息订阅与接收,执行业务代码。
2.【阿利昂斯车外3音区项目】
该项目为思必驰(AISPEECHl)海外开发项目,甲方丰田旗下阿利昂斯,合同200w。
【负责内容】:
作为思必驰的开发技术支持,提供DDS SDK给客户,并协助客户集成、使用语音能力。用英文进行车内1米内、车外3米内的语音控制。
【相关技术】:
声纹(唤醒声纹、文本无关声纹)注册与验证、唤醒方位、全双工、延时聆听、跨音区交互、单轮多轮对话、唤醒、识别、语义解析、消息订阅与接收。
3.【奇瑞ICAR,V23/03T项目】
【负责内容】:
多媒体开发(对接QQ音乐、爱奇艺、喜马拉雅等第三方平台),实现对音乐、视频、广播、电台、新闻、戏曲的内容搜索及播放控制(上一个、下一个、暂停播放、继续播放、快进快退、播放模式)
4.【奇瑞捷途,MY1/T1L/FL项目】
【负责内容】:同奇瑞ICAR类型,进行多媒体及车控模块的维护。
5.【海马项目】
【负责内容】:该项目属于遗留项目,主要负责维护并处理客户遇到的相关问题。
6.【海外小语种项目】
【负责内容】:
跑通11种语言的链路:唤醒、识别、翻译、语义解析、客户端调用业务代码。
具体功能同上类似。
11种语言:英语、泰语、俄语、西班牙语、阿拉伯语、德语、法语、印尼语、葡萄牙语、马来语、越南语。
相关文章:
Android开发工作经历整理
一.无人机应用软件开发 集成大疆官网的DJIMobileSDK到AS中编写软件,操控无人机执行多个航点任务。集成OpenCV库进行图像识别,通过获取参数,根据算法执行sdk,使无人机降落到机库,并执行后续的换电操作。待无人机就绪后…...
C++中常用的十大排序方法之4——希尔排序
成长路上不孤单😊😊😊😊😊😊 【😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C中常用的排序方法之4——希尔排序的相…...
解决注入线程池的栈溢出问题
文章目录 1.问题产生2.问题解决 1.问题产生 在使用sleuth的时候,需要注入线程池,他才会自动包装,实现traceId的传递,但是突然启动时出现了栈溢出的问题 2.问题解决 根据报错,发现是Gson序列化相关的问题,…...
自动驾驶---两轮自行车的自主导航
1 背景 无人驾驶汽车最早出现在DARPA的比赛中,从那个时刻开始,逐渐引起全球学者的注意,于是从上个世纪开始各大高校院所开始了无人汽车的研发。直到这两年,无人驾驶汽车才开始走进寻常百姓家,虽然目前市面上的乘用车还…...
哈夫曼树并查集
(1)哈夫曼树 特殊概念: 1.结点的权:表示结点树的重要性 2.带权路径长度:从树的根到该节点的路径长度(经过的边数)与该节点上权值的乘积 2.树的带权路径长度:该树的所有叶子节点的…...
PyTorch数据建模
回归分析 import torch import numpy as np import pandas as pd from torch.utils.data import DataLoader,TensorDataset import time strat = time.perf_counter()...
在 Ubuntu 上安装 Node.js 23.x
在 Ubuntu 上安装 Node.js 23.x 前提条件安装步骤1. 下载设置脚本2. 运行设置脚本3. 安装 Node.js4. 验证安装 参考链接总结 在现代 web 开发中,Node.js 是一个不可或缺的工具。它提供了一个强大的 JavaScript 运行时环境,使得开发人员可以在服务器端使用…...
SQL范式与反范式_优化数据库性能
1. 引言 什么是SQL范式 SQL范式是指数据库设计中的一系列规则和标准,旨在减少数据冗余、提高数据完整性和一致性。常见的范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF(Boyce-Codd范式)。 什么是SQL反范式 SQL反范式是指在满足范式要求的基础上,有…...
hunyuan 混元学习
使用了5个subset,也是用了text-image和text-video进行训练的 也是进行了复杂的视频选择。同movie gen. 也进行了模型切断,用拉普拉斯算子找到最清晰的一帧作为训练的起始 训练了不同的模型去选择数据,比如用Dover去选择美观度比较好的数据,…...
四、GPIO中断实现按键功能
4.1 GPIO简介 输入输出(I/O)是一个非常重要的概念。I/O泛指所有类型的输入输出端口,包括单向的端口如逻辑门电路的输入输出管脚和双向的GPIO端口。而GPIO(General-Purpose Input/Output)则是一个常见的术语,…...
.Net / C# 繁体中文 与 简体中文 互相转换, 支持地方特色词汇
版本号 Nuget 搜索 “OpenCCNET”, 注意别找错, 好多库的名字都差不多 支持 “繁,简” 的互相转换, 支持多个地区常用词汇的转换, 还支持 日文的新旧转换. OpenCC 在 .Net 中的实现 https://github.com/CosineG/OpenCC.NET <PackageReference Include"OpenCCNET"…...
一元函数微积分的几何应用:二维平面光滑曲线的曲率公式
文章目录 前言曲率和曲率半径的定义曲率计算公式参数方程形式直角坐标显式方程形式极坐标形式向量形式 前言 本文将介绍二维平面光滑曲线的曲率定义以及不同形式的曲率及曲率半径公式的推导。 曲率和曲率半径的定义 (关于二维平面光滑曲线的定义以及弧长公式请参…...
数据结构与算法之异步: LeetCode 1114. 按序打印 (Ts版)
按序打印 https://leetcode.cn/problems/print-in-order/description/ 描述 给你一个类: public class Foo {public void first() { print("first"); }public void second() { print("second"); }public void third() { print("third&qu…...
python:求解爱因斯坦场方程
在物理学中,爱因斯坦的广义相对论(General Relativity)是描述引力如何作用于时空的理论。广义相对论由爱因斯坦在1915年提出,并被阿尔伯特爱因斯坦、纳森罗森和纳尔逊曼德尔斯塔姆共同发展。广义相对论的核心方程是爱因斯坦场方程…...
PostgreSQL 数据备份与恢复:掌握 pg_dump 和 pg_restore 的最佳实践
title: PostgreSQL 数据备份与恢复:掌握 pg_dump 和 pg_restore 的最佳实践 date: 2025/1/28 updated: 2025/1/28 author: cmdragon excerpt: 在数据库管理中,备份与恢复是确保数据安全和业务连续性的关键措施。PostgreSQL 提供了一系列工具,以便于数据库管理员对数据进行…...
位运算的概念
文章目录 整数在计算机中的表示二进制表示有符号类型和无符号类型机器数和真值原码、反码和补码原码、反码和补码的表示方法计算机中的表示 位运算与、或、异或和取反移位运算移位运算与乘除法的关系位运算的性质 目录 整数在计算机中的表示 二进制表示 程序中的所有数在计算…...
自主Shell命令行解释器
什么是命令行 我们一直使用的"ls","cd","pwd","mkdir"等命令,都是在命令行上输入的,我们之前对于命令行的理解: 命令行是干啥的?是为我们做命令行解释的。 命令行这个东西实际上是我们…...
Vue.js 的介绍与组件开发初步
Vue.js 的介绍与组件开发初步 Vue.js 的介绍与组件开发初步引言第一部分:Vue.js 基础入门1.1 什么是 Vue.js?1.2 搭建 Vue.js 开发环境安装 Node.js 和 npm安装 Vue CLI创建新项目运行示例 1.3 第一个 Vue.js 示例 第二部分:Vue.js 组件开发基…...
XCCL、NCCL、HCCL通信库
XCCL提供的基本能力 XCCL提供的基本能力 不同的XCCL 针对不同的网络拓扑,实现的是不同的优化算法的(不同CCL库最大的区别就是这) 不同CCL库还会根据自己的硬件、系统,在底层上面对一些相对应的改动; 但是对上的API接口…...
Python教学:文档处理及箱线图等
代码1: import os import pandas as pd import numpy as py import os.path from os import listdir import openpyxl from openpyxl import Workbook import re import matplotlib.pyplot as plt # 导入matplotlib的绘图模块,用于可视化 cwdos.getcwd…...
【Redis】安装配置Redis超详细教程 / Linux版
Linux安装配置Redis超详细教程 安装redis依赖安装redis启动redis停止redisredis.conf常见配置设置redis为后台启动修改redis监听地址设置工作目录修改密码监听的端口号数据库数量设置redis最大内存设置日志文件设置redis开机自动启动 学习视频:黑马程序员Redis入门到…...
【大数据技术】教程05:本机DataGrip远程连接虚拟机MySQL/Hive
本机DataGrip远程连接虚拟机MySQL/Hive datagrip-2024.3.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本机的DataGrip连接虚拟机的MySQL数据库和Hive数据库,提高编程效率。 安装DataGrip 请按照以下步骤安装DataGrip软…...
springboot 启动原理
目标: SpringBootApplication注解认识了解SpringBoot的启动流程 了解SpringFactoriesLoader对META-INF/spring.factories的反射加载认识AutoConfigurationImportSelector这个ImportSelector starter的认识和使用 目录 SpringBoot 启动原理SpringBootApplication 注…...
llama.cpp GGUF 模型格式
llama.cpp GGUF 模型格式 1. Specification1.1. GGUF Naming Convention (命名规则)1.1.1. Validating Above Naming Convention 1.2. File Structure 2. Standardized key-value pairs2.1. General2.1.1. Required2.1.2. General metadata2.1.3. Source metadata 2.2. LLM2.2.…...
使用Pytorch训练一个图像分类器
一、准备数据集 一般来说,当你不得不与图像、文本或者视频资料打交道时,会选择使用python的标准库将原始数据加载转化成numpy数组,甚至可以继续转换成torch.*Tensor。 对图片而言,可以使用Pillow库和OpenCV库对视频而言…...
PythonStyle MVC 开发框架
在 Python 中,MVC(Model - View - Controller,模型 - 视图 - 控制器)是一种常见的软件设计模式,它将应用程序分为三个主要部分,各自承担不同的职责,以提高代码的可维护性、可扩展性和可测试性。…...
HTTP协议的无状态和无连接
无连接 ①无连接的含义 这里所说的无连接并不是指不连接,客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考…...
毫秒级响应的VoIP中的系统组合推荐
在高并发、低延迟、毫秒级响应的 VoIP 场景中,选择合适的操作系统组合至关重要。以下是针对 Ubuntu linux-lowlatency、CentOS Stream kernel-rt 和 Debian 自定义 PREEMPT_RT 的详细对比及推荐: 1. 系统组合对比 特性Ubuntu linux-lowlatencyCentO…...
PWN--格式化字符串
简介 格式化字符串是指在编程过程中,通过特殊的占位符将相关对应的信息整合或提取的规则字符串。格式化字符串包括格式化输入和格式化输出,其本质是程序员调用相关格式化字符串的操作协议规定。错误的或不当的信息配置可能导致程序运行失效或产生未…...
tf.Keras (tf-1.15)使用记录2-基于tf.keras.layers创建层
tf.keras.layers是keras的主要网络创建方法,里面已经有成熟的网络层,也可以通过继承的方式自定义神经网络层。 在keras的model定义中,为了保证所有对数据的操作都是可追溯、可保存、可反向传播,需要保证对数据的任何操作都是基于t…...
