自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(516)
  • 资源 (1)
  • 收藏
  • 关注

原创 Flutter实现自己的表格组件

表格组件最终效果如下:整个表格的数据为一个List<TableMo> tableMoList每一行的数据为一个List<TableDetail> list表格的数据实体类:class TableMo { List<TableDetail> list; TableMo(List<TableDetail> list) { this.list = list; }}class TableDetail { String titl

2021-06-08 16:24:21 1711 1

原创 Android反射2-对反射语法的封装

2 对基本反射语法的封装前面介绍的种种语法,无论是反射出一个类,还是反射出一个构造函数井调用它,都是为了进一步读写类的方法和宇段,所以我们只要封装以下几个方法即可:反射出 一个构造 函数并调用它 。调用静态方法。调用实例方法 。获取和设置一个字段的值。对泛型的处理 。2.1 反射出一个构造函数 public static Object createObject(String...

2020-11-04 09:28:10 576

原创 Android性能优化之SparseArray

文章目录什么是性能优化?几种数据结构比较线性数据结构顺序表与链表Hash表HashMapSparseArrayHashMap 与 SparseArrayHashMap 和 SparseArray性能对比内存时间什么是性能优化?一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验。几种数据结构比较线性数据结构顺序表与链表Hash表HashMapSparseArrayHashMap 与 SparseArrayHashM

2020-09-02 15:17:29 436

原创 Android开发中MVC、MVP到MVVM演化

有一个需求:需要查询用户账号信息,用户输入账号,点击按钮可进行查询账号信息,如果查询数据成功,则将数据展示在界面上;如果查询数据失败,则在界面上提升获取数据失败。一般模式NormalActivity获取用户输入信息展示获取信息成功页面展示获取信息失败页面查询用户数据业务逻辑...

2020-09-02 08:53:57 375

原创 玩数据结构和算法-实现自己的归并排序

文章目录归并排序实现归并排序和插入排序的性能比较归并排序改进再次性能比较自底向上的归并排序两种归并排序的性能比较归并排序的实现原理和动画可以网上找归并排序实现import java.util.*;public class MergeSort { // 我们的算法类不允许产生任何实例 private MergeSort() { } // 将arr[l...mid]和arr[mid+1...r]两部分进行归并 private static void merg

2020-08-16 15:35:37 250

原创 玩数据结构和算法-排序算法的工具类

排序的工具类用于生成随机数组和有序数组,生成的数组用于测试排序算法,比较不同排序算法的性能。package C02_Sorting_Basic.S06_Insertion_Sort_Advance;import java.lang.reflect.Method;import java.lang.Class;import java.util.Random;public class SortTestHelper { // SortTestHelper不允许产生任何实例 priva

2020-08-11 13:34:38 176

原创 Android中的数据结构和算法-实现自己的LRU算法

文章目录1 内存缓存淘汰机制2 实现自己的单链表3 基于单链表手写实现LRU算法1 内存缓存淘汰机制LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。FIFO (Fist in first out) 先进先出, 如果一个数据最先进入缓存中,则应该最早淘汰掉。LRU算

2020-08-10 21:59:41 569

原创 玩数据结构和算法-实现自己的二分搜索树

文章目录二分搜索树 Binary Search Tree二分搜索树是二叉树二分搜索树的每个节点的值:大于其左子树的所有节点的值小于其右子树的所有节点的值每一棵子树也是二分搜索树存储的元素必须有可比较性import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class BST<E extends Comparable<E>> { pri

2020-08-09 16:09:55 201

原创 玩数据结构和算法-实现属于自己的链表

文章目录链表的实现使用链表实现栈带有尾指针的链表:使用链表实现队列参考:https://blog.csdn.net/hongxue8888/article/details/107665599https://blog.csdn.net/hongxue8888/article/details/107588793https://blog.csdn.net/hongxue8888/article/details/107893120动态数组、栈、队列:底层依托静态数组,靠resize解决固定容量问题链表

2020-08-09 15:44:50 178

原创 玩数据结构和算法-实现属于自己的队列

文章目录1 数组队列2 数组队列的复杂度分析3 循环队列4 数组队列和循环队列的比较5 动态数组的代码队列也是一种线性结构相比数组,队列对应的操作是数组的子集只能从一端(队尾)添加元素,只能从另一端(队首)取出元素队列是一种先进先出的数据结构:First In First Out(FIFO)队列需要实现以下方法:public interface Queue<E> { int getSize(); boolean isEmpty(); void enqu

2020-08-09 14:53:13 161

原创 数据结构和算法-实现带约束泛型的选择排序法

文章目录1 选择排序的实现思路2 实现选择排序法3 使用带约束的泛型4 选择排序法的复杂度分析4.1 数组生成器4.2 判断数组是否有序5 换个角度实现选择排序法1 选择排序的实现思路选择排序法的实现思路如下:先把最小的拿出来剩下的,再把最小的拿出来剩下的,再把最小的拿出来…每次选择还没处理的元素里最小的元素2 实现选择排序法public class SelectionSort { private SelectionSort(){} public static void

2020-08-08 22:18:11 272

原创 玩数据结构和算法-实现属于自己的动态数组

文章目录数据结构概览1 二次封装数组2 向数组中添加元素3 数组中查询元素和修改元素4 包含,搜索和删除5 使用泛型6 动态数组7 resize复杂度分析8 复杂度震荡数据结构概览数组,看似是最简单的数据结构,但是,大多数语言为我们提供的都是静态数组,如何封装一个属于我们自己的动态数组,将是讨论的重点。同时,也将探讨泛型,复杂度分析,乃至复杂度的震荡,等相关高级话题。1 二次封装数组public class Array { private int[] data; private

2020-07-29 16:44:53 202

原创 Android Framework用到了哪些IPC方式?

文章目录管道通信socket通信共享内存信号总结这道题想考察什么?是否了解Linux常用的跨进程通信方式是否研究过Android Framework并了解一些实现原理是否了解Framework各组件之间的通信原理Linux IPC方式管道Socket共享内存信号管道通信半双工的,单向的一般是在父子进程之间使用int main(void) { int n, fd[2]; char buf[SIZE]; //生成一对描述符,一个用来写,一

2020-07-28 09:23:39 282

原创 从四个视角理解Android Activity启动模式

文章目录1 Android软件体系架构1.1 Android的软件体系结构1.2 Tasks怎样查看Tasks2 Activity的启动方式2.1 Task的启动方式(恢复)2.2 Task启动方式(新建)2.3 Laucher启动3 Activity & Fragment的生命周期3.1、Activity和Fragment3.2、Activity的生命周期3.3 相邻状态之间的区别3.4 onNewIntent的生命周期4 Standard等4种启动模式4.1 Activity启动模式4.2 st

2020-07-27 18:39:07 270

原创 玩数据结构和算法-实现属于自己的栈

文章目录1 使用数组实现栈1.1 实现动态数组1.2 动态数组的时间复杂度分析1.3 复杂度震荡1.4 使用数组实现栈2 使用链表实现栈2.1 链表的实现2.2 链表的时间复杂度分析2.3 使用链表实现栈1 使用数组实现栈1.1 实现动态数组public class Array<E> { private E[] data; private int size; // 构造函数,传入数组的容量capacity构造Array public Array(int

2020-07-26 09:16:04 176

原创 数据结构和算法-线性查找法和测试算法性能

文章目录线性查找法实现测试算法性能线性查找法实现public class LinearSearch { private LinearSearch(){} public static <E> int search(E[] data, E target){ for(int i = 0; i < data.length; i ++) if(data[i].equals(target)) return

2020-07-25 22:45:23 270

原创 Tinker sample 报错 找不到android.support.annotation.Keep

参考:https://blog.csdn.net/qq_34177302/article/details/106574640在工程目录下gradle.properties添加#表示将依赖包也迁移到AndroidXandroid.enableJetifier=true这里如果取值为 false ,表示不迁移依赖包到AndroidX,但在使用依赖包中的内容时可能会出现问题。...

2020-07-02 15:20:22 459

原创 Flutter仿学习强国填空题

需要实现的如下图红色框中所示

2020-06-02 09:10:15 1039 3

原创 Flutter运行错误:Gradle does not have execution permission

参考:Flutter运行错误:Gradle does not have execution permissioncd .../项目/androidls -l可以看出 gradlew 没有执行权限,通过命令添加执行权限解决: chmod a+x gradlew...

2020-05-06 08:07:05 512

原创 FFmpeg多媒体文件处理

文章目录FFmpeg代码结构FFmpeg日志系统FFmpeg文件与目录操作FFmpeg日志的使用及目录操作FFmpeg的基本概念及常用结构体对复用 / 解复用及流操作的各种实战FFmpeg代码结构libavcodec提供了一系列编码器的实现libavformat实现在流协议,容器格式及其本IO访问libavutil包括hash器,解码器和各种工具...

2020-04-22 10:54:33 689

原创 Linux ls命令大全

参考:https://blog.csdn.net/Mechelle__/article/details/82560839在Linux系统中,随时都会需要知道文件或者目录的相关信息。所以ls是Linux系统中最常被执行的命令之一。ls:显示非隐藏文件的文件名,按文件名进行排序。ls -a:显示全部的文件,包括隐藏文件,以.开头的文件。(常用)ls -A:显示全部文件,包括隐藏文件,但是不...

2020-04-18 17:23:15 1451

原创 FFmpeg开发必备的C语言

文章目录HelloWorld常用基本类型常量与变量指针与数组结构体HelloWorldvi HelloWorld.c#include <stdio.h> int main(int argc,char* argv[]){ printf("HelloWorld!\n"); return 0;}clang -g -o helloworld ...

2020-04-17 22:36:03 1119

原创 Vim编辑器

Vim处理模式命令模式拷贝、删除、粘贴等,通过 i/a 等键切换到编辑模式编辑模式编辑字符,通过Esc键进行切换Vim常用命令创建文件: vim filename保存文件: :w关闭文件: :q保存+关闭: :wqVim拷贝、粘贴与删除拷贝: yy/yw粘贴 : p删除: dd/dwVim光标移动左下上右: h / j / k /l跳到文件头: ...

2020-04-16 19:19:24 168

原创 FFmpeg常用命令

文章目录2-1 FFmpeg常用命令分类2-2 FFmpeg音视频处理流程2-3 FFmpeg基本信息查询命令2-4 FFmpeg录制命令2-5 ffmpeg分解与复用命令2-6 ffmpeg 处理原始数据命令2-7 ffmpeg滤镜命令2-8 ffmpeg音视频的裁剪与合并命令2-9 ffmpeg图片与视频互转2-10 ffmpeg直播相关的命令使用FFmpeg命令进行音视频处理,包括FFmp...

2020-04-16 15:40:39 792

原创 FFmpeg和RTMP结合编译

参考:FFmpeg下载librtmp的github新建MyFFmpeg4目录mkdir MyFFmpeg4下载 ffmpeg-4.2.2wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2解压缩tar -xvf ffmpeg-4.2.2.tar.bz2

2020-04-12 22:56:15 1470 1

原创 Android ndk cmake学习

文章目录创建Native C++项目添加过滤cmake打印日志添加动态库添加静态库参考:安卓项目中so库选择(ndk abiFilters设置,armeabi,armeabi-v7a,arm64-v8a)Android Studio 中的 CMake message 输出位置在哪里?Android Studio之动态库路径重定向cmake之 ADD_LIBRARY()Android C...

2020-04-12 01:13:43 190

原创 FFmpeg的编译详解

help参数,进行必要性说明:[root@VM_0_4_centos ffmpeg-4.2.1]# ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]​Help options: --help print thi...

2020-03-31 23:39:13 1050

原创 Android mk方式使用动态库和静态库

centos ndk下载和编译动态库 静态库Mac使用iTerm2 rz sz和腾讯云互传文件将libget.a 和 libget.so 添加到ndkdir目录中,并创建Android.mk文件配置build.gradle externalNativeBuild { ndkBuild { abiFilters 'armeabi-...

2020-03-31 22:00:25 3585

原创 Mac使用iTerm2 rz sz和腾讯云互传文件

参考:Mac osx 下安装iTerm2,并使用rz sz上传下载(附homebrew配置)解决在Mac下iTerm2终端使用sz和rz命令报错问题在Mac 连接腾讯云中我们实现了使用iTerm2连接腾讯云服务器,接下来使用iTerm2实现腾讯云和本地mac互传文件。安装iTerm2建议去官网下载 http://www.iterm2.com/如果下载不了也可以百度云链接下载,链接:ht...

2020-03-30 10:41:08 1000

原创 centos ndk下载和编译动态库 静态库

vim get.h#include<stdio.h>int get();vim get.c#include"get.h"int get(){ return 9587;}export NDK_GCC_arm="/root/ndk/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linu...

2020-03-29 17:38:40 535

原创 Mac 连接腾讯云

参考:Mac OS X 通过终端 SSH 连接腾讯云服务器Mac Osx下腾讯云centos7.2配置创建SSH密钥将下载下来的SSH密钥保存在Finder的~/.ssh目录下,如果没有这个目录,可以通过终端创建一个:cd ~mkdir .ssh然后通过 Finder 的前往功能,或者快捷键Shift + Command + G来进入~/.ssh目录。将下载下来的密钥文件复制粘...

2020-03-29 15:54:13 2875

原创 Homebrew-bottles 镜像使用帮助

参考:Homebrew-bottles 镜像使用帮助Homebrew/Linuxbrew 镜像使用帮助注:该镜像是 Homebrew 二进制预编译包的镜像。本镜像站同时提供 Homebrew 的 formula 索引的镜像(即 brew update 时所更新内容),请参考 Homebrew 镜像使用帮助。临时替换export HOMEBREW_BOTTLE_DOMAIN=htt...

2020-03-29 12:38:16 1288 1

原创 Mac解决homebrew更新慢

参考:Mac OS X 解决HomeBrew更新慢的问题mac下的brew命令虽然非常好用,但是遇见更新慢时,是很闹心的一件事。最简单的解决办法就是 替换国内源。这里我们使用中科大的源(当然还有很多其它源,可自行搜索),方法如下:替换brew.gitcd "$(brew --repo)"git remote set-url origin https://mirrors.ustc.e...

2020-03-29 11:48:07 1461

原创 Android JNI线程操作

线程简单实现void *customThread(void *pVoid) { for (int i = 0; i < 30; ++i) { __android_log_print(ANDROID_LOG_DEBUG, "hongx", "%d : ", i); }}extern "C"JNIEXPORT void JNICALLJava_co...

2020-03-27 16:00:53 252

原创 Android JNI动态注册

// 下面是动态注册JavaVM * jvm;void register01(JNIEnv * env, jobject instance, jstring text) { const char * textValue = env->GetStringUTFChars(text, NULL); __android_log_print(ANDROID_LOG_DEBU...

2020-03-26 22:40:14 150

原创 Android JNI Java构造方法的实例化和引用类型

首先Dog类,添加构造方法,使构造方法被C++中直接实例化添加两个按钮在MainActivity中定义两个native方法testDog和testUnDog,两个按钮点击分别调用这两个方法全局引用 和 构造方法实例化:使用NewGlobalRef来定义dogClass为全局引用。如果不设置为全局引用,会隐式释放 dogClass , dogClass不为NULL 但 悬空,所以再...

2020-03-26 21:18:30 370

原创 Android JNI对象的深入

Android JNI使用入门中实现了C++中操作Java的Student对象,接下来再看一个操作对象的示例。上面代码中,我们没有传入Person和Student对象,而是通过反射的方式获取这两个对象。输出日志如下:testObject的完整代码如下:extern "C"JNIEXPORT void JNICALLJava_com_hongx_jni_MainActivity_...

2020-03-26 14:17:54 152

原创 Android JNI使用入门

文章目录Java调用C++C++调用Javajavap -s 获取方法签名参考:Java与CC++交互JNI编程AndroidStudio使用JNI实现Log日志 中我们实现了一个简单的 Java调用C++的方法 的示例,接下里实现较复杂的Java与C++的交互。Java调用C++在MainActivity.java中定义了native方法addTest01,并调用该方法传入对应的值,如下...

2020-03-26 11:31:56 411

原创 AndroidStudio使用JNI实现Log日志

参考:C 语言 define 变参__VA_ARGS__使用AndroidStudio创建JNI方法实现了AndroidStudio创建JNI方法,接下来要实现Log日志打印功能。然后在MainActivity中调用native方法test01:运行后打印:__android_log_print 和 ANDROID_LOG_DEBUG可以进入log.h中查看,如下:...

2020-03-25 22:37:18 1238

原创 AndroidStudio创建JNI方法

新建Native C++项目在MainActivity.java 中添加test01方法1 老方式创建jni方法选择java目录,右键-> Open in Terminal在命令行输入以下语句:javah com.hongx.jni.MainActivity查看生成如下文件:2 新方式创建jni方法选中test01方法名,然后使用代码提示 option + ente...

2020-03-25 10:19:24 1909

HxSkin.zip

Android 动态换肤实现,模仿网易云音乐,简单易懂,值得学习!

2019-07-16

空空如也

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

TA关注的人

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