自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (13)
  • 收藏
  • 关注

原创 MAVLink分析及封装自定义的类MavLink通信协议

通过自动生成mavlink的协议代码,我们可以此基础上进行自定义的拓展。形成自己通信协议。··首先我们把协议通信命令区分为发送和接收:AckMsg和CmdMsg两类,分别用于接收和发送。AckSysInfo类会解析出playload的属性值://解析出payload包含的实体数值@Override'}';CmdSysInfo会包playload的属性值包装成一个MyLinkPacket:@Override。

2024-03-29 11:39:07 996

原创 Kotlin协程知识点概述

Kotlin 是⼀⻔仅在标准库中提供最基本底层 API 以便各种其他库能够利⽤协程的语⾔。与许多其他具有类似功能的语⾔不同,async 与 await 在 Kotlin 中并不是关键字,甚⾄都不是标准库的⼀部分。此外,Kotlin 的 挂起函数概念为异步操作提供了⽐ future 与 promise 更安全、更不易出错的抽象。kotlinx.coroutines 是由 JetBrains 开发的功能丰富的协程库。它包含本指南中涵盖的很多启⽤⾼级协程的原语,包括 launch 、async 等等。

2024-03-26 18:44:43 776

原创 Kotlin编程权威指南学习知识点预览

函数支持包括函数在内的任何类型的参数。一个函数类型的参数定义起来和其他类型的参数 一样:在函数名后的一对圆括号内列出,再加上类型。"你好我的名字叫: $myName" + ",今年:$age 岁了"在面向对象编程的世界里,类是核心,是一类独特“事 物”的代码形式的定义。具体来讲,类定义的是事物包含哪一类数据,能做什么样的工作。类可以定义在一个独立的文件中,也可以和函数或变量定义在一起。类定义在单独一个文件 里,可以给应用程序未来的规模升级预留扩展空间。

2024-03-14 18:45:41 889

原创 C++ STL标准程序库开发指南学习笔记

模板库(STL):STL另一个重要特性是它不是面向对象的。STL主要依赖于模板。这使得STL的组件具有广泛通用性和底层特性。由于STL是基于模板的,内联函数的使用使得生成的代码短小高效。类模版实例化:类模版仅仅是模板,如何使用模板就涉及类模板的实例化问题。模板实例化一般指使用模板类和模板参数生成一个类声明的过程。类模板的成员函数:可被类模板实例化产生的类所拥有。每个类模板都拥有自己相应的成员函数,这些函数可被模板的实例调用。

2024-03-01 17:34:00 968

原创 C++基础知识点预览

数组是以系列元素;数据中所有元素的类型都相同;这组元素形成一个完整的集合。预处理器在编译之前运行,预编译器指令都以#打头。C++程序通常在.h(头文件)中声明类和函数,并在.cpp文件中定义函数,因此需要在.cpp文件中使用预处理器编译指令#include来包含头文件。#define定义常量;#ifndef和#endif:在预处理器看来,两个头文件包含对方会导致递归问题。为避免这种问题,可结合使用过宏以及预处理器编译指令#ifndef和#endif;

2024-02-08 16:39:37 943

原创 Android AutoSize屏幕适配中图标及字体放大的问题解决

现象:项目接入Android AutoSize屏幕适配框架,项目本身主界面是横屏操作的界面。测试中用户反馈在vivo x27的手机或者其他机型也会出现(没测试出来)横屏后所有的图标及字体都放大。原因查找:查看Android AutoSize的源码可知,isBaseOnWidth的标志位为屏幕适配的基准。在获取资源文件getResources()的对图片/文字及其他资源文件可以指定具体的适配方案,vivo x27横屏转换后获取的宽高对调了,所以导致原本以宽(或者高)为基准数值相对调,导致界面的图.

2021-07-04 11:44:55 1935

原创 Android工程师进阶34讲学习笔记

拉勾教育是最近发现一个技术提升的平台,很多课程对于技术提升都多有益处,很多是实际上的项目实战并对底层原理讲解透彻。前几个月已经学习完了姜新星的《Android 工程师进阶 34 讲》,现在重学一遍并做些总结记录加深印象。学习的过程要符合遗忘曲线,当一些所学的知识遗忘时就是该重新复学的开始,这样真正学到的知识才能刻进大脑里变成自己的知识,把书读薄在运用到的时候“下笔如有神”。一.程序运行时内存的分配:Java 虚拟机在执行 Java 程序的过程中,会把它所管理的内存划分为不同的数据区域。下面这张图描述

2020-10-26 14:17:07 1066 3

原创 设计模式之美(王争)摘录总结

经过八个月的学习,极客时间中王争的设计模式之美。最近又重读两遍,真是遍受益匪浅啊,学习之后才知道代码可以这样设计这样优美的编写。觉得自己有摘录一些在学习中认为比较好的精华,以备自己以后的查用和复习。一.术语描述:面向对象编程:具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编码实现的基础; 面向对象语言:是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言; 设计原则:是指导我们代.

2020-09-13 18:54:32 3129 1

原创 FFmpeg项目初探学习笔记

FFmpeg是广泛使用于的多媒体解决方案,是一个自由软件项目的名称,采用LGPL或GPL许可证。它提供了录制/转换以及流化音视频的完整解决方案。包含非常先进的音频/视频编解码库libavcodec。为了保证高可移植性和编解码质量,libavcodec里很多代码都是新开发的。“FFmpeg”这个词中的“FF”指的是“Fast Forward”,而“mpeg”指的是一种压缩率比较大的活动图像和声音的压缩标准。一.FFmpeg简介:命令行工具概述(Command Line Tool Documentati

2020-08-22 11:22:36 274

原创 C++入门知识点总结——面向对象/高级编程

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。1.面向对象:类&对象:类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。类的定义:类定义是以关键字class开头,后跟类的名称。class Box{ public: double length; // 盒子的长度 double breadth;

2020-07-04 18:57:36 300

原创 C++入门知识点总结——基本语法

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。1.面向对象程序设计:C++ 完全支持面向对象,包括面向对象开发的四大特性:封装 抽象 继承 多态C++标准库的组成:核心语言,提供了所有构件块,包括变量、数据类型和常量等; C++ 标准库,提供了大量的函数,用于操作文件、字符串等; 标准模板库(STL),提供了大量的方法,用于操作数据结构等。C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互:

2020-06-21 18:42:55 2039

原创 Android Gradle知识点总结

1.AndroidGradle插件:

2020-06-16 20:28:45 301

原创 Gradle入门及相关总结

Gradle是一款非常优秀的构建系统工具,它的DSL是基于Groovy实现。可以方便通过代码控制这些DSL达到构建目的,Gradle构建大部分功能是通过插件方式来实现。1.Gradle入门及Gradle Wrapper:Wrappe是对Gradle的一层包装,便于团队在开发过程中统一Gradle构建版本,避免因为Gradle构建版本不同意带来的不必要麻烦。gradlew和gradlew.bat分别是Linux和window下的可执行脚本,用法跟Gradle原生命令一样; gradle-w.

2020-06-13 22:51:52 202

原创 查看Android源码中的Native/JNI/C/C++代码

最近在学习Android音视频流方面的知识,买了何俊林的《Android音视频开发》。一看书吓一跳好多JNI/C/C++方面的代码,如今是初步学习了JNI了,也有一些C/C++的功底。但怎么查看Android源码中的Native/JNI/C/C++代码一直苦恼了很久,没办法查看这些代码就无法进行下一步学。现在在网上看到了一篇能查看源码的文章查看native层源码的文章,终于了看对应代码示例了。登录AndroidXRef网站; 选择SDK版本;; 进入搜索界面,输入对应的匹配字符,点击搜索:

2020-05-24 18:36:46 2601

原创 Java 本地接口(JNI)编程设计规范

"JNI"解决了一个问题,类似于(similar to)通过被其他语言支持的互操作机制来解决的问题。然而,在"JNI"和在许多其他语言中的互操作机制之间有一明显的不同。"JNI"不是为一个特别的"Java"虚拟器的实现设计的。而是,一个本地接口能过被每个"Java"虚拟器的实现支持的。1.JNI设计目的:"JNI"设计的最重要目标是确保它在一个给定的主机环境上不同的"Java"虚拟器实现中提供二进 制兼容性。同样的本地库的二进制不需要在编译(without the need for recom.

2020-05-23 14:26:22 482

原创 Java 本地接口(JNI)编程指南和规范学习笔记2

JNI附加功能

2020-05-23 13:09:01 237

原创 Java 本地接口(JNI)编程指南和规范学习笔记1

1.Java平台环境简介:"Java"平台的编程环境包含"Java"虚拟机(VM)和Java应用程序编程的接口(Java Application Programming Interface(API))。"Java"应用程序是用"Java"编程语言编写的,被编译成一个独立于 机器(machine-independent)二进制类格式.一个类在任何Java虚拟机上执行实现。Java的API包 含预定义的类集合。Java"平台的任何实现被假设支持Java编程语言,虚拟机和"API"。...

2020-05-17 18:06:44 304

原创 Android NDK入门基础笔记

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码。使用 NDK 将 C 和 C++ 代码编译到原生库中,然后使用 Android Studio 的集成构建系统 Gradle 将原生库打包到 APK 中。Java 代码随后可以通过Java原生接口(JNI)调用原生库中的函数。NDK的作用:进一步提升设备性能,以降低延迟,或运行计算密集型应用,如游戏或物理模拟。 重复使用您自己或其他开发者的 C 或 C++ 库。Android Studio 编译

2020-05-10 18:50:20 221

原创 音视频基础知识学习笔记

1 视频编码:视频编码就是指通过特定的压缩技术将某个视频格式文件转换成另一种视频格式的文件方式,视频传输中最重要的是编解码标准有国际电联的H.261/H.263/H.264/H.265,运动静止图像专家组的M-JPEG和国际标准化组织的运动图像专家组MPEG系列标准,此外还有网上广泛应用的Real-Networks的RealVideo/微软公司的WMV以及Apple的QuickTime等。...

2020-05-05 19:00:27 577

原创 iOS基础及GPS位置服务地图编程学习笔记

AVFoundation框架是一个功能强大的多媒体框架,用于iOS中音频/视频/音频会话/对摄像头和麦克风控制等功能的开发。AVFoundation框架在对声音控制与音视频播放方面有着强大的功能,它是一个包含音频和视频内容的Object-C类。框架包含的服务:声音会话管理; 对应用媒体资源的管理; 对编辑媒体内容的支持; 捕捉声音和视频的功能; 播放音频和视频的功能; 轨迹管...

2020-05-05 13:25:54 229

原创 iOS基础网络编程学习笔记

iOS进行网络交互的过程是在Web Service应用层进行的,而Web Service采用的Http和Https协议1.Http概述:Http(Hypertext Transfer Protocol)是超文本传输协议,基于TCP/IP协议之上的应用层的协议。Http协议支持C/S网络结构,是无连接协议,即是每次都有请求建立连接,当服务器处理完客户端请求,应答完成后就会断开链接,不会一直占...

2020-05-04 17:25:57 410

原创 iOS数据存储学习笔记

iOS提供本地存储和云存储(iCloud)方式。本地存储的五种机制:属性列表(类Android中的XML存储方式):可以将集合对象以键值对的形式读写属性列表(plist)中; NSUserDefaults(类Android中的SharePreferences的存储方式):轻量级的存储机制; 对象归档(类Android中的File序列化存储):可以将对象的状态保存到归档文件中; SQL...

2020-05-03 20:45:15 252

原创 iOS图形与图像处理学习笔记

UIScrollView是UIView的子类,用于滚动视图的显示,以及当前视图显示不了所有内容时的滚动显示,图片浏览功能也是建立在UIScrollView滚动视图的基础上。PageControl一般与UIScrollView一起使用,用于显示图片浏览动画时具体是第几张图片。UIScrollViewDelegate的协议:- (void)scrollViewDidScroll:(UIScr...

2020-05-02 16:57:27 227

原创 iOS视图控制器使用学习笔记

UIViewControl是所有视图控制类的父类,所有子类都继承于它。视图控制器是为iPhone应用程序提供了基础的视图控制模型,用户可以通过视图控制器来管理视图的继承关系。所以使用视图控制器可以方便地管理视图中的子视图的子视图,如不使用视图控制器来操作视图的话,那么所有的视图的视图必须有继承管理。(Android中的Activity的作用也是用于添加布局控件及控制控件之间的调用操作的关系,把...

2020-05-01 22:18:25 389

原创 iOS高级界面编程学习笔记

1.UIImageView图片控件(类比于Android中的ImageView控件):UIImageView是用来在屏幕上显示图片的一个视图,如要显示图片,首先需要将图片文件加载到UIImage上,然后通过方法使用UIImage。imageNamed:通过项目中的文件来创建; imageWithCGImage:通过Quartz 2D对象来创建; imagewithContents...

2020-04-18 22:28:22 192

原创 iOS基础界面编程———常用UIView控件的使用

UIView的子类UIWindow: UILabel:类比于Android中的TextView的显示功能; UIPickerView: UIProgressView: UIActivityIndication: UIImageView: UITableBar: UIToolbar: UINavigationBar: UITableViewCell: UIActionShee...

2020-04-11 22:43:26 265

原创 Android组件化架构学习笔记——架构演化

1. 基础架构:使用Android studio开发时,根据依赖原则,用最简单的线性架构来接耦:使用Base module引入多种工具库; 使用Framework module编写框架逻辑,可以被持续复用; 将业务集中到Common module中以保持业务高内聚,利用文件夹来区分不同的业务间的关联,一个文件夹作为一个独立业务。 app module被编译打包生成app。基础架构的...

2020-04-06 20:58:27 361

原创 Android组件化架构学习笔记——组件化流通

1.内部流通:Android studio中的Gradle有着自身临时存储的仓库,但是非常不易于管理,这种情形下引入Maven仓库。1.1 Maven基础:官网的Maven仓库。Android studio使用Gradle引用的第三发库来自两种网络仓库,一种时MavenCenter,另一种是JCenter。两个仓库都具有相同的使命:提供Java或Android library...

2020-04-06 18:55:07 241

原创 Android组件化架构学习笔记——组件化分发2

1.组件化列表配置:1.1:Javapoet语法基础:Javapoet是Java编译时注解开发的工具类库,Javapoet提供编写Java代码的接口,在编译器中自动生成源代码。Javappoet中有五种常用的类:ParamterSpec:参数声明; MethodSpec:构造函数或方法声明; TypeSpec:类/接口或者枚举声明; FieldSpec:成员变量; Java...

2020-04-06 17:33:04 311

原创 Android组件化架构学习笔记——组件化分发1

一.Activity分发:在Android开发中,Activity是Android的四大组件之一,作为页面呈现容器,起到与用户交互的关键功能。一个Activity可以看作一个独立的容器,可以容纳非常多的业务。Activity的生命周期:onCreate():在创建启动时调用; onStart():处于可见状态时调用; onResume():Activity显示在UI顶层时被调用;...

2019-09-28 11:31:32 378 1

原创 Android组件化架构学习笔记——组件化编译

Gradle本质上是一个Android Studio的自动化编译工具,每个module中的Project对象在编译时会运行内部所有的构建Task。Gradle就如工厂合成的工具一样,很大程度上已经制定了基本流程,但生产时总会有不同的问题,如需要配置不同的原料(Gradle参数),加入特定的工序(加入Task任务)。一.Android基础编译流程:官方提供的构建流程,介绍了编译打包的四个流程...

2019-09-16 21:40:10 557

原创 Android组件化架构学习笔记——Gradle优化

Gradle是Android项目开发环境的一部分,Android Studio每次配置编译时都需要使用Gradle。一.Gradle基础:Gradle本质上时一个自动构建工具,使用基于Groovy的特定领域语言(DSL)来声明项目设置。使用Groovy最大哦的原因就是Groovy基本语法和Java一样,最大程度适应Java开发。当利用Groovy编写自定义插件时,语法并没有太大差异,仅仅是...

2019-09-14 22:05:58 717 1

原创 Android组件化架构学习笔记——组件化编程之静态变量/资源/混淆/多渠道打包

一.组件化的静态变量:R.java的生成:各个module会生成aar文件,并且被引用到Application module中,最终合并为apk文件。当各个次级module在Application module中被解压后,在编译时资源R.java会被重新解压到build/generated/source/r/debug(release)/包名/R.java中。当每个组件中的aar文件汇总...

2019-09-13 10:48:47 658

原创 Android组件化架构学习笔记——组件化编程之权限管理

权限设立的目的是保护安全。一.权限机制:Android底层是基于Linux系统的,而Linux权限访问由进程和文件两个部分组成。系统权限分为三种类型:Android所有者权限,相当于拥有Android Rom开发权限,可以获取所有的权限; Android Root权限,相当于取得Linux系统中的最高用户权限,可以任意对文件进行修改; Android应用程序权限,获取只能通过A...

2019-08-30 22:48:27 492

原创 Android组件化架构学习笔记——组件化编程之数据存储

Android中的五种存储方式:SharePreferences,File I/O,SQLite,ContentPreferences,网络。网络存储:一定固定的路径可以获取到相关信息; File I/O(文件存储):便于携带和分享; SQLite(数据库):通过事前管理的机制,数据处理高效; ContentPreferences(内容提供者):跨app传输数据,速度取决于存储数据的获取...

2019-08-25 19:49:09 731

原创 Android组件化架构学习笔记——组件化编程之动态创建

组件化中使用动态创建的作用是解耦一.反射基础:反射机制是在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法。反射是可以在一个类运行的时候获取类的信息的机制,可以获取在编译期不可能获取类的信息。对于任何一个对象,能够调用它的任意一个方法和属性。因为类的信息是保存在Class对象中的,而这个Class对象是在程序运行时被类加载(ClassLoader)动态加载的。当类加载器装载运行了...

2019-08-25 12:46:24 328

原创 Android组件化架构学习笔记——组件化编程之组件间跳转

一.隐式跳转:

2019-08-17 14:19:40 525

原创 Android组件化架构学习笔记——组件化编程之通信机制

一个项目的开启时,需要深入评估工具在编程中的代价和实现成效。工具直接影响着工作效率,首先要知道有什么工具(工具类及库)?怎么选择这些工具?怎么使用这些工具?使用这些工具有什么好处?怎么做才能做到更加高效,以减少工具消耗和人力消耗的计量?时间维度:沟通时间,决策时间,编码时间,维护时间;空间维度:产生工程包大小,运行内存,方法量。一.本地广播:LocalBroadcastManage...

2019-08-11 12:10:57 319

原创 Android关于虚拟控件、全面屏及悬浮球机型适配时遇到的问题

现在市面上全面屏的手机,有些机型存在悬浮球的设置。在界面设计的时候就要考虑如全面屏/虚拟键/悬浮球三种情形的关于控件适配的问题。当遇到一些视频显示及图片显示时,全面屏/虚拟控件/悬浮球状态时会对控件进行缩放。这样就使得原本按比例显示的视频和图片出现拉伸的情况出现。这时我们要设定比例的控件不受全面屏/虚拟控件的显示及隐藏/悬浮球显示与否的影响。1、全面屏:2、虚拟控件隐藏:3、悬浮球...

2019-07-18 21:49:44 726

原创 Android组件化架构学习——组件化基础

一.组件化/模块化及插件化概念:多module划分业务和基础功能,这概念作为组件化的基础。组件:指的是单一的功能组件,如视频组件(VideoSDK)/支付组件(PaySDK)/路由组件(Router)等,每个组件都能单独抽出来制作成SDK。 模块:指的是独立的业务模块,如直播模块(LiveModule)/首页模块(HomeModule)/即时通讯模块(IMModule)等,模块相对于组件...

2019-07-09 22:20:39 337

Android下自动连接指定SSID的WIFI的简单实现的demo

Android下自动连接指定SSID的WIFI的简单实现的demo,  需求分析:在很多的智能设备上并没有可用于交互的界面。这种情形在智能设备就可以提供指定SSID和密码的wifi自动连接。

2018-10-31

GamepadView、JostickView仿创客工场中的遥感的自定义View

仿创客工场中GamepadView、JostickView的操纵杆的自定义View!!!!!!!!!!!!!!!!1

2018-08-04

Android Blockly积木编程源码对Workspace中的block数据保存及读取的流程,及改造原生代码实现Trash垃圾桶中的block保存及读取

Android Blockly积木编程源码对Workspace中的block数据保存及读取的流程,及改造原生代码实现Trash垃圾桶中的block保存及读取。

2018-01-31

Android 画布Canvas之连线动画Demo

实现在画布中连线的动画的效果,可以控制连线动画的速度,连线的颜色及线宽!!!!!!!!!!!11!!!!!

2017-12-11

Coverflow源码改造之后的代码

Coverflow源码改造之后的代码,实现在控件左右两边限制了卡片的数量,并在下一个卡片出现之后要消失的卡片随之隐藏需求的的要求。

2017-09-18

Android 画布Canvas之控件连线操作Demo

1.在画布中的控件A长按能进行控件的连接,只有在控件B范围内抬起控件之间的连线才能连接成功; 2.当控件连线成功后,拖动控件AB之间的连线随着控件的拖动随之变化; 3.控件连线在屏幕上随着手势滑动触碰到连接则断开连线; 4.控件拖动时如拖动到其他控件的范围位置之内则弹回原来的位置且控件的连线也恢复原来的位置(控件在屏幕上不能重叠); 5.控件放置时如有控件之间的连线相交则也恢复原来的位置(在屏幕上控件间的连线不能相交); 6.控件拖动到连线上也会弹回; 7.进行控件的连续连接。

2017-07-24

Android自定义万能Canvas画布Demo

1.在自定义的画布中实现可缩放手势,摇一摇可对控件进行整理排序; 2.画布中可以添加位置设定的控件,控件可以响应点击、长按、拖动事件; 3.控件A长按事件会隐藏画布中的控件除了A之外,显示另一个控件B;当A在在底层画布中拖动,拖动结束之后回到原画布;当A移动B的位置范围响应操作(可以添加另方面功能)。

2017-07-17

AI深度学习文档

AI深度学习文档

2017-07-09

kotlin基础

kotlin语言文档

2017-07-09

Android自定义画布及环形菜单

1.画布绘制控件的方法,控件应该是一个可以自定义的; 2.画布是可以缩放,且提供一个缩放的方法供外使用; 3.控件之间连线的方法; 4.画布缩放之后手势滑动的识别实现; 5.环形菜单的实现。

2017-07-02

StickyLayoutDemo

StickyLayoutDemo

2017-04-08

Android中RecyclerView的item运用覆盖view的方法实现item的动画效果1

item实现item的动画效果,item实现item的动画效果item实现item的动画效果item实现item的动画效果item实现item的动画效果item实现item的动画效果item实现item的动画效果item实现item的动画效果item实现item的动画效果

2017-04-04

Android中RecyclerView的item运用覆盖view的方法实现item的动画效果

Android中RecyclerView的item运用覆盖view的方法实现item的动画效果,Android中RecyclerView的item运用覆盖view的方法实现item的动画效果

2017-04-04

空空如也

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

TA关注的人

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