自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Extra Lazy的博客

如果能早点注意就好了,原来我很早就痴狂了。

  • 博客(100)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 马上: Android线上OOM问题定位解决分享及总结

官方分析应用性能https://developer.android.com/studio/profile项目现状java.lang.OutOfMemoryErrorpthread_create (1072KB stack) failed: Try again Failed toallocate a 7687692 byte allocation with 2774696 free bytes and 2MB until OOMOutOfMemoryError thrown while try

2021-12-19 22:58:12 16513 3

原创 Kotlin 快速入门

前言人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin?Kotlin 是种静态类型编程语言 用于现代多平台应用 100%可与Java™和Android™互操作,它是[JetBrains]开发的基于JVM的语言 开发IDE : Intellij / AndroidStudio3.0 preview 参考: Kotlin 官网 / Kotlin 语言...

2017-09-17 17:41:12 12080 1

原创 矩阵数学基础

矩阵数学基础

2024-03-12 09:42:45 336

转载 重磅 - Gradle 功能介绍

转:笔者耗时 8 个月学习、写作,五万字长文总结,带你了解 Gradle 提供的功能。

2024-01-18 11:31:12 46

原创 GNSS算法原理及应用

本文介绍了GNSS算法的原理和应用,包括伪距单点定位(PPP)、实时动态定位(RTK)和载波相位差分定位(PDOP)等算法。伪距单点定位是一种基于伪距测量的定位方法,它只需要一个接收器就可以计算出接收器的位置。载波相位差分定位是一种基于载波相位测量的定位方法,它需要两个或更多的接收器。载波相位测量是一种更精确的定位方法,它通过测量卫星信号的载波相位来计算接收器与卫星之间的距离。伪距测量是GNSS算法的基础,它通过测量卫星信号的传播时间来计算接收器与卫星之间的距离。载波相位差分定位(PDOP)

2023-12-14 20:29:27 350

原创 在经典蓝牙连接时,经常出现“run: read failed, socket might closed or timeout, read ret: -1”

【代码】在经典蓝牙连接时,经常出现“run: read failed, socket might closed or timeout, read ret: -1”

2023-07-28 09:24:13 490

原创 用Python 快速一键迁移至AndroidX

强烈推荐FlashText:语料库数据快速清理利器。 flashtext

2022-07-14 10:25:26 708 1

原创 ConstraintLayout(约束布局)开发指南

ConstraintLayout 是一个使用“相对定位”灵活地确定组件的位置和大小的一个布局,解决开发中过于复杂的页面层级嵌套过多的问题——层级过深会增加绘制界面需要的时间。相对定位是在 ConstraintLayout 中创建布局的基本构建块之一。这些约束允许您相对于另一个控件定位给定的控件。您可以在水平和垂直轴上约束一个控件:水平轴:左、右、起点和终点垂直轴:顶部、底部和文本基线一般概念是将控件的给定一侧约束到任何其他控件的另一侧。例如,为了将按钮 B 定位到按钮 A 的右侧(图 1):这告诉系

2022-06-20 20:02:21 4713

原创 Android-模块化通信-接口api化include方案

Android-模块化通信-接口api化include方案提示:这里可以查看系列文章Android-模块化-项目实践和探索分享Android-模块化通信-简单实用的android spi机制前言Android-模块化通信,输出一套简单好维护的 api化 方案include 方案从 微信 Android 模块化架构重构实践(上)暴露api 方案 获得灵感, 从每个模块中收集api 文件,采用gradle配置能快速实现apply from: rootProject.file('./bu

2022-04-01 21:05:48 9579

原创 Android-模块化通信-简单实用的android spi机制

目录前言一、spi是什么?二、`ServiceLoader`1.`ExportTableLoader`2.`ExportTable`3.`LazyLoader`4.`ServiceLoader`三、应用四、总结前言为了实现Android-模块化通信-需要一套简单实用的android spi机制。一、spi是什么?SPI即 Service Provider Interface,它是为接口提供寻找实现服务类,类似IOC的思想。二、ServiceLoaderjava中的spi, ServiceLo

2022-03-29 22:14:18 10665

原创 Android-模块化-项目实践和探索分享

提示:这里需要提前对Android-模块化-基本知识了解本文主要分享个人在项目中实现Android模块化中的gradle统一配置、nexus、maven-publish、动态依赖、模块通信等思路组件化项目demo模块的依赖对应关系应该采用map数据结构构建关系,key为project,value为上面的依赖切换详情项依赖的传递性可以采用递归循环压缩依赖信息为map,project、moudule、dep_option字段必须依赖项配置:、api、、、、等,其中api具有传递性依赖信息为map,

2022-03-29 19:53:55 11923 2

原创 Android SSLHandshakeException

SSLHandshakeException相关SSLHandshakeException 报错信息,在项目中已经实现了,TrustAllManager,为何还会报错呢javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.javax.net.ssl.SSLHandshakeException: Una

2022-03-21 11:40:00 6900

原创 AGP Gradle 的一些问题记录

AGP Gradle 的一些问题记录7.0.4 版本环境, as: Build #AI-211.7628.21.2111.8139111, built on February 2, 2022allprojects {configurations.all { resolutionStrategy.dependencySubstitution { //project&module依赖关系切换处理 substitute(project

2022-02-11 17:01:40 1668 1

原创 马上:头疼:安卓黑屏,白屏,网卡,sdcard挂载等问题深入分析解决

白屏设备一段时间使用后,白屏,需要重启,经线上日志和以下相关代码初步分析是AMS 窗口显示问题。检查相关业务代码,发现Activity有可能被finish多次,导致失败,还有多次startActivityif (isFinishing()) { return;}finish();startActivity //要防止重复启动,在垃圾机型上会出问题黑屏经过排查,发现软件不稳定时,捕到崩溃时,调用了下面杀掉进程方法,在某些机器上,表现很奇怪,主进程无法启动,导致无响应!Process.

2022-01-25 23:47:12 8360

原创 马上:UART 数据处理机制

马上:UART 数据处理机制单片机与Android主板UART通信,虽说是异步通信,实则还是一收一发,稳定,靠谱[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h2hVpIVP-1641617655097)(file:///C:/Users/Vxiao/.config/joplin-desktop/resources/8726e1a20cd343a785b3c5d2173a5c54.jpg “图片”)]同步和异步的区别串行通信可以分为两种类型,一种叫同步通信,另一种

2022-01-08 12:54:28 14404

原创 马上:系统签名apk和工具

马上:系统签名apk和工具开发一款系统插件app, 系统权限,android:sharedUserId="android.uid.system , 其中涉及系统签名和一下工具使用,记录一下android:sharedUserId官方爸爸警告:API 级别 29 中已弃用此常量。 共享用户 ID 会在软件包管理器中导致具有不确定性的行为。因此,强烈建议您不要使用它,并且我们在未来的 Android 版本中会将其移除。相反,应用应使用适当的通信机制(例如服务和内容提供程序),在共享组件之间实现互操作

2022-01-06 23:52:31 12394

原创 马上:测温模块坑

马上:测温模块坑为什么坑呢,环境影响十分大,容易误差,需要各种补偿,校准。就是个噱头欧姆龙测手腕的 (4x1 矩阵点数据)测额头的 (4x4/16x16 矩阵点数据)矩阵点数据由单片机计算输出:温度数据方案:通过串口uart(TTL电平)温度数据已经过黑体出厂矫正,并且提供两种模式的温度数据A:已经补偿到手腕温度范围的温度数据 (数码管显示用此温度)B:物体表面温度数据(未补偿过的)附带一个说明图:看看底下吧,这么多模块都是受环境影响十分大,容易误差,需要各种补偿,校准

2022-01-06 23:51:47 11639

原创 马上:安卓5.0以下系统兼容 TLSv1.1 TLSv1.2

马上:安卓5.0以下系统兼容 TLSv1.1 TLSv1.2最近在不知情下,运维升级https证书级别为1.2,导致了安卓5.0以下的设备无法上网(接口证书错误),安卓7.12设备可以访问查阅官方文档SSLSocket借一个表格说明问题:ProtocolSupported (API Levels)Enabled by default (API Levels)SSLv31–251–22TLSv11+1+TLSv1.116+20+TLSv1.2

2022-01-04 23:49:06 10604

原创 马上:纸币互动,智能笔数据点压缩

马上:纸币互动,智能笔数据点压缩对接一款智能笔,笔的数据是通过蓝牙传给app, 但是笔的笔迹点数量很多,网络传输用json就不恰当。所以一番调研才起二进制压缩点(数字压缩基本原理)基本数据class Dot implements Serializable { public int Counter; public int SectionID; public int OwnerID; public int BookID; public int PageID;

2022-01-03 23:43:21 17992

原创 马上:GPIO

马上:GPIORockchip-瑞芯微RK系列上的板卡,有很多GPIO,可以控制的通用引脚。我司的应用有控制LED灯,接收人体感应器高低状态(高==感应到人),控制4G模块电路开关每个板卡方案上都会预留几组GPIO bank,  看板卡的规格书,一般都会标注着编号,硬件上的编号不是软件上的编号,不同Android版本上计算的方式也有差异,一般方案商会提供api, 或者提供软件编号工作原理I/O 输入输出,简单了解即可linux sysfs 方式控制 GPIOandroid 同样适

2022-01-02 22:49:35 10876

原创 马上:硬件开关机

马上:硬件开关机通过多年与RK3288不同产品的方案公司的接触,梳理并总结RK3288方案常用开关机的方案PMU+RTC 方案PMU: RK808RTC: hym8563 (纽扣电池供电)硬件上需要把RTC的中断脚接到RK808的开机引脚上电源管理芯片又称之为PMU(power management unit)或PMIC,它是一种高集成的、针对便携式应用的电源管理方案,是将传统分立的若干类电源芯片,如低压差线性稳压器(LDO)、直流直流转换器(DC/DC)集成于一体的芯片,从而实现更高的电

2022-01-02 22:20:39 13520

原创 马上:Android pins 模块化架构

马上:Android pins 模块化架构主工程的代码堆积,造成包目录结构臃肿,难区分。借用pins工程结构暂时,其相互独立的代码进行区分,为后期模块组件化,留下了灵活性。pins ,原理是gradle sourceSets ,sourceSets { main { def dirs = ['p_vpos',//vpos 'p_vbook',//v图 'p_vboo

2022-01-02 21:26:12 16746

原创 马上:Zxing、Zbar、HMS Scankit 扫码优化

Zxingzxing 一款Java、Android 很流行的二维码、条形码扫码库。开源,可移植,简单易用的api.相信大家对接触过zxing 库,在高端性能机器扫码效果还是很不错的,但面对复杂的扫码环境而言强光,弯曲,形变等情况,Zxing 的缺陷就被放大了。基于 Zxing 的做优化的话,老手话深有体会, 可优化的空间并不多。无非以下方面, 而且效果不显著摄像头预览,选择合适的size预览,减少解码数据,裁减无用数据区域根据业务去除多余的格式…ZarZBar 是一个开源软件,用于从各种来

2022-01-02 14:29:05 11122

原创 Android DNS解析过程

前言一次排查接口404问题,引伸的Android DNS解析过程,简单分析总结一下1、首先明白DNS解析流程操作系统检查自身本地的hosts文件是否有这个网址的映射关系,如果有,直接返回完成域名解析如果hosts文件没有这个域名映射,则查找本地dns解析器缓存,如果有映射关系则完成域名解析如果hosts和本地dns缓存都没有映射关系,则查找TCP/IP中的首选dns服务器(本地dns服务器),收到查询时,如果查询的资源在本地配置区域中,则返回解析地址给客户机,完成域名解析。如果不在本地dns

2022-01-02 00:39:59 15559

原创 马上:网络故障排查的思路和方法

马上:网络故障排查的思路和方法安卓日常开发工作中,总会遇上些网络问题需要排查清楚。比如我遇上了,线上app网络状态是良好的,但是上传日志失败、接口404但公司网络能请求成功200、直播推流失败、耗流量大、MQTT连接异常…基本网络知识了解网络通信的基础设备和其对应的OSI层次最基本的网络设备交换机、三层交换机、路由器、防火墙。OSI七层模型中的数据链路层、网络层等TCP/IP五层和四层网络模型网络的基本架构网络组网的经典模型,接入层-汇聚层-核心层-出口层 (中小型企业网络

2022-01-01 22:45:47 13920

原创 马上:WiFi设置功能模块 (快速实现和分析要点)

WiFi设置功能模块 (快速实现和分析要点)Android 物联网WIFI模块配置,软件上需要连接WIFI网络1、熟悉系统提供API由于对WIFI相关功能API不是很了解,参考官方源码 androidxref,下面列简单的必要类WifiManager 顾名思义即WIFI服务管理者或官方描述此类提供用于管理 Wi-Fi 连接各个方面的主要 API。…ScanResult 扫描WIFI结果或官方描述有关检测到的接入点的信息。 除了此处描述的属性之外,请求方maxbitrate跟踪q

2021-12-26 17:54:08 18147

原创 Android Gradle 之迷惑

报错delete outputFileExecution failed for task ':VScreen:assembleVscreen_baseRelease'.> java.io.IOException: Unable to delete file 'D:\vx-work\android-code\vx-screen\VScreen\build\outputs\apk\vscreen_base\release\VScreen_vscreen_base_v7.0.1_build_21121

2021-12-17 23:07:51 17596

原创 scrcpy开源项目分析学习

scrcpy可以显示并控制通过 USB (或 TCP/IP) 连接的安卓设备,且不需要任何 root 权限。本程序支持 GNU/Linux, Windows 和 macOS。scrcpy githubapp mac/windows/linux客户端assetsconfigdatagradleprebuilt-depsscriptsserver android 服务端 android 服务端 share/scrcpy/scrcpy-server 本身是个apk.

2021-11-20 22:03:31 13964

原创 termux 开源项目学习分析

Termux - 适用于 Android 操作系统的终端模拟器应用程序,可通过各种软件包进行扩展。termux-app//覆盖下载,Bootstrap zip包 ,地址页:https://github.com/termux/termux-packages/releases/tag/bootstrap-2021.11.07-r1def downloadBootstrap(String arch, String expectedChecksum, String version) {.......

2021-11-20 14:15:27 20332 2

原创 Gradle7.0.0 修改apk输出目录outputDirectory,第二次打包时,上次apk被删除

4.2.2 升级Gradle7.0.0 后,第二次打包时,apk被删除,项目中修改了apk输出目录outputDirectory,故注释outputDirectory=代码排除,具体看了一下gradle 源代码未发现原因//...applicationVariants.all { variant -> if (variant.buildType.name != "debug") {//防止AS无法安装debug包(apk) .

2021-10-07 23:13:29 3802 2

原创 2019、2020、2021年技术知识巩固记录

2020年技术知识巩固记录。资料网上获取,版权归原处所有Java 对象回收处理过程热修复原理

2021-09-23 00:13:53 109

原创 安卓热修复很坑

mpaas 热修复很坑Tinker 很坑

2021-09-23 00:08:47 106

原创 java 文件post上传

/** * 模拟文件post上传 * * @param urlStr(接口地址) * @param formName(接口file接收名) * @param filePath(需要上传文件的本地路径) * @return文件上传到接口返回的结果 */ public static String uploadFile(String urlStr, String formName, String filePath) { ...

2020-09-14 23:39:20 2030

原创 升级最新4.0.1 踩坑记录

最近项目架构调整,为了更快编译项目以及,支持java8, 从build tools 3.0.1 ==> 4.0.1 其中遇到一下问题,简单记录一下解决过程第三方库依赖打包时冲突,简单办法直接,excludeandroid.enableAapt2=false,,默认强制支持,以及r8proguard 兼容,但会有些地方报错, ignorewarning 不支持,obfuscationdictionary 不能有 if ,do 关键字,应该是已经重复了jar 不能有dex 文件以及重复cla.

2020-08-06 14:48:34 1027

原创 Android Log.isLoggable 妙用

近来发现源码里面好多地方用到了 Log.isLoggable , 一查一看,是个东西,适合系统层以及root 主板设备上使用,能实现动态开关android.util.Log.isLoggable(TAG, android.util.Log.DEBUG)如上面代码以及文档说明,setprop log.tag.YOUR_LOG_TAG LEVEL 开启指定级别的日志开关属性,VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, or SUPPRESS. SUPPRESS

2020-06-01 23:15:23 1946

原创 RecyclerView 踩坑记

左图,横屏时,左侧 RecyclerView 高度不需要占满屏幕,但出现被强行占满,只好重写onMeasure由于视频播放View组件要不但要在横竖屏展示,还要双击跳到大屏上,只想到了管理View对象,在onBindViewHolder 时动态添加VideoView,为了刷新图片不闪烁更好的性能,取消动画,itemAnimator.setSupportsChangeAnimations(fa...

2020-04-27 23:10:59 1881

原创 Android Studio 升级问题

gradlePluginPortal()-ignorewarning

2019-12-13 17:29:29 1695

原创 安卓ble广播数据简析

手环,跳绳各种~广播蓝牙的广播包有两种: 广播包 (Advertising Data)和 响应包 (Scan Response),其中广播包是每个设备必须广播的,而响应包是可选的。每个包都是 31 字节,数据包中分为有效数据(significant)和无效数据(non-significant)两部分。scanRecord数据有效数据部分 :包含若干个广播数据单元,称为 AD Struc...

2019-12-13 17:11:58 2119

原创 uninstall-tuxera-mac

感谢https://nektony.com/how-to/uninstall-tuxera-mac

2019-10-11 12:05:54 169

原创 巧妙均分TabLayout tab

/** * 均分TabLayout tab * 利用LinearLayout weight 特性, android.support.design.widget.TabLayout#updateTabViewLayoutParams(android.widget.LinearLayout.LayoutParams) */ public static vo...

2019-08-12 14:48:50 1603

run-adb.bash

adb 常用命令bash封装

2021-11-28

adb 超快速截图bash脚本

对于Android Studio 截图功能不得吐槽一下,截图慢而不能连续截图,而且在某些android上不能截屏 . 具体使用adb 的 screencap 命令进行截图

2017-11-17

安卓消息机制演示

通过示例,理解消息处理机制本质:一个线程开启循环模式持续监听并依次处理其他线程给它发的消息。

2016-09-10

CordovaLib

Cordova 库 Android

2016-07-30

Intent 与 Intent Filters 实现外部调用

Intent 与 Intent Filters 实现外部调用

2016-07-30

AndroidVideoCache (改成 okhttp 缓存)

AdroidVideoCache是一个视频/音频缓存库,利用本地代理实现了边下边播,结合OKhttp 优点,进行缓存

2016-07-27

web网上书城

网上书城,实现加入购物车功能,采用JSP+Servlet

2016-02-21

网上商城JavaEE+ssh

简单网上商城(SSH) 采用框架来开发,有登录、注册、浏览商品、添加购物车功能

2016-02-21

简单购物车

简单网上商城,采用MySQL+JDBC+C3P0 进行开发,有登录注册 后台管理,加入购物车等功能。

2016-02-21

仿Eclipse启动画面

Java启动界面 能帮助了解进度条,线程调度

2014-07-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除