- 博客(124)
- 资源 (38)
- 问答 (1)
- 收藏
- 关注

原创 androidStudio编译faac为动态库
下载faac源码包,地址:https://sourceforge.net/projects/faac/files/faac-src/faac-1.28/,注意要下载.tar.gz的,我试过.zip中的源码用ndk编译不通过。 然后创建一个android项目工程,并创建一个jni目录,并将源码所有文件全部粘贴到jni目录下,如图: 其中有一个config.h.in文...
2018-09-07 15:52:31
1280

原创 Android OpenSL ES播放pcm音频
OpenSL ES是一个嵌入式、跨平台、免费的、音频处理库,android ndk也引入了它,在android-ndk-r14b/platforms/android-21/arch-arm/usr/lib/libOpenSLES.so的目录下,libOpenSLES.so就是适用于Android平台的开发库。OpenELES对于android平台的支持只有部分API,因此,对于 OpenSL...
2018-05-27 21:05:53
1358

原创 android开发之OpenGL(二)
GLSL语言名词解释: 1、图元:图形软件用来描述各种图形的函数。 2、OpenGL渲染管线 渲染流水线:是显卡芯片内部处理图形信号相互独立的并行处理单元。简单理解就是把数据转化到OpenGL并且生成最终图像的一个过程! 3、GLSL是什么? GLSL是一门专门为图形开发设计的编程语言。 4、可编程管线的编程阶段 顶点处理阶段:由顶点着色器、...
2018-04-19 00:31:44
2789
2

原创 android开发之OpenGL(一)
初识OpenGL 一、什么是OpenGL 1、OpenGL是一种应用程序编程接口,它是一种可以对图形硬件设备特性进行访问的软件库。 2、OpenGL被设计为一个现代化的、硬件无关的接口,因此我们可以在不考虑计算机操作系统或窗口系统的前提下,在多种不同的图形硬件系统上,或者完全通过软件的方式实现OpenGL接口。 3、OpenGL自身并不包含任何执行窗口任务,或者处理用户输...
2018-03-14 22:48:19
13262

原创 Opencv实现简单的人脸检测
使用Opencv实现一个简单的人脸检测的Demo,是很简单的,具体的算法都是Opencv内部实现的,我们只需要调用实现就可以了。下面我们代码搞起!重点内容 第一步:Opencv调取摄像头, implements CameraBridgeViewBase.CvCameraViewListener2,Override onCameraViewStarted(int,int)、onC...
2018-03-05 10:50:01
2004
2

原创 android开发之音频拼接
第一种情况:不同压缩格式音频拼接,不同的压缩格式拼接需要解码为采样数据然后拼接,然后再编码为统一的压缩格式。 方法一:FFmpeg命令拼接,ffmpeg -I ‘concat:0.mp3|1.wav|2.aac’ -acodec copy merge.mp3。(注意:这种方式,速度相对还可以,但是在android设备上一下子拼接6个音频以上就会奔溃,应该是C代码中有什么变量...
2018-02-26 23:38:32
3793
1

原创 android中使用OpenCV之图像边缘检测
目前比较火热的图像识别技术,如车牌号识别、身份证识别、人脸识别等,都广泛运用到了图像边缘检测,今天我所介绍的就是OpenCV边缘检测,实现边缘检测有三个步骤:滤波->增强->检测,opencv中有三个常用的边缘检测算子函数:canny、sobel和laplace。 现附上一张原图: canny算子 Canny边缘检测算子是一种多级检测算法,Canny的目标是找到一个最
2018-02-05 00:35:24
3977

原创 android中使用OpenCV之数学形态学
数学形态学是由一组形态学的代数运算子组成的,其常见的运算有膨胀(或扩张)、腐蚀(或侵蚀)、开启、闭合、梯度、黑帽、顶帽以及击中击不中变换等。我在这儿主要介绍以上8种运算在OpenCV中的使用。 OpenCV中形态数学的算子实现方法为:morphologyEx() /** * 形态学滤波函数 morphologyEx() * 参数1:输入的图片 * 参数
2018-02-01 00:58:56
420

原创 android使用OpenCV之图像滤波处理
图像滤波: 尽量保留图像细节特征的条件下对目标图像的噪声进行抑制和平滑处理,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 滤波器: 低通滤波器(允许低频通过),高通滤波器,带通滤波器,带阻滤波器,全通滤波器,陷波滤波器。 我在这儿主要介绍OpenCV中所提供的滤波操作,线性滤波与非线性滤波。 opencv中线性滤波操作
2018-01-29 18:39:20
3284

原创 android使用opencv图片腐蚀与扩张
数学形态学中运算有 膨胀(或扩张)、腐蚀(或侵蚀)、开启、闭合、骨架抽取、极线腐蚀、击中击不中变换、Top-hat变换、颗粒分析、流域变换、形态学梯度等,其中腐蚀与扩张就是我们今天所有讲的要点。opencv中对腐蚀和扩张有相对的函数去实现,多用于图像的取噪、分割出独立的图像元素,在图像中连接相邻的元素、寻找图像中明显的极大值或极小值区、求图像的梯度。腐蚀 腐蚀是求图片局部最小值算法,
2018-01-23 23:41:33
1707
原创 electron + vue 操作
electron + vue 操作vue init simulatedgreg/electron-vue wh-desktop-app? Application Name wh-desktop-app? Application Id com.wh.app? Application Version 0.0.1? Project description An electron-vue project? Use Sass / Scss? Yes? Select which Vue plugins.
2021-08-30 15:23:22
304
原创 python字符串集合排序
需求:按顺序修改每套试题的文件夹名称,文件名称开头都是由数字组成。所以需要对文件名进行排序以数字为比较对象,然后按顺序修改文件名称。 path = "./套题突破" dirList = tools.readDir(path) for d in dirList: childPath = path + "/" + d if os.path.isdir(childPath): print(d) childDirLi
2021-05-14 17:53:46
329
原创 sqlite数据库的加密与解密
sqlite数据库的加密与解密单词创建的数据库:WH_Lexicon.db利用sqlcipher对数据库进行加密;sqlcipher工具地址下载之后,编译$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto -L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include"$ make利用sqlci
2021-05-14 11:50:55
3676
原创 mac安装brew工具
执行如下脚本/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2021-04-02 16:56:06
153
原创 Python计算apk中文件的签名
计算apk中文件签名 allCRC = 0 zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'aaa.apk')) for file in zipFile.infolist(): print(file.filename) print(file.CRC) if "resources.arsc" in file.filename: allCRC = allCRC
2021-03-25 15:42:59
486
原创 v1+v2+v3签名和资源混淆
直接用apksigner进行签名apksigner sign --ks (签名地址) --ks-key-alias (别名) --out (签名后的apk地址) (待签名apk地址)使用Jar命令进行签名java -jar apksigner.jar sign --ks (签名地址) --ks-key-alias (别名) --out (签名后的apk地址) (待签名apk地址)直接用apksigner进行验证apksigner verify -v --print-certs (apk地
2021-01-07 18:41:02
1025
原创 android移动安全保护
/** * 是否在模拟器中运行 */ fun isRunningInEmualtor():Boolean{ var qemuKernel:Boolean = false var process:Process? = null var os:DataOutputStream? = null try { process = Runtime.getRuntime()
2020-11-02 00:45:46
642
原创 java 实现PBE加密解密
/** * 支持以下任意一种算法 * * <pre> * PBEWithMD5AndDES * PBEWithMD5AndTripleDES * PBEWithSHA1AndDESede * PBEWithSHA1AndRC2_40 * </pre> */ public static final String ALGORITHM = "PBEWITHMD5andDES"; /*
2020-10-30 17:41:27
1219
原创 java 实现DH加密解密
public static final String ALGORITHM = "DH"; /** * 默认密钥字节数 * * <pre> * DH * Default Keysize 1024 * Keysize must be a multiple of 64, ranging from 512 to 1024 (inclusive). * </pre> */ private stat
2020-10-30 17:26:33
2814
1
原创 java实现DSA签名、验签
DSA 私钥签名,公钥验签public static final String ALGORITHM = "DSA"; /** * 默认密钥字节数 * <pre> * DSA * Default Keysize 1024 * Keysize must be a multiple of 64, ranging from 512 to 1024 (inclusive). * </pre> */ p.
2020-10-30 16:44:05
730
2
原创 Java实现AES算法
private static final String TAG = "AES"; /** * 加密算法 */ private static final String KEY_ALGORITHM = "AES"; private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";//默认的加密算法 /** * 签名算法 */ publ.
2020-10-30 14:31:44
722
1
原创 java实现MD5加密
/* * Copyright 2016 jeasonlzy(廖子尧) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licens
2020-10-26 16:27:59
1419
原创 java实现RSA加密
准备 公钥:pub.key 公钥:pri.key 私钥import javax.crypto.Cipher;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.nio.file.Files;import java.nio.file.Paths;import java.security.*;import java.security.spec.PKCS8.
2020-10-26 16:02:45
400
1
原创 java实现DES加密
public class DESUtils { private static String keyStr = "f41087ef"; private static String py = "4cd4bba8"; /** * 加密 * @param data * @return */ public static String encryptString(String data){ try { ..
2020-10-26 15:33:13
489
1
原创 python遍历删除集合元素
1、拷贝删除queue = ['a, 'b', 'c', 'a', 'b']print(queue)for item in queue[:]: if item == 'a' or item == 'b': queue.remove(item) print(queue)2、倒叙删除queue = ['a, 'b', 'c', 'a', 'b']print(queue)for i in range(len(collect) - 1, -1, -.
2020-07-01 10:15:28
894
原创 python安装nltk
nltk官方地址:http://nltk.org安装nltkpip install nltk下载nltk数据包import nltknltk.download()如果下载报错,请到https://github.com/nltk/nltk_data下载,放到usr/local/Cellar/nltk_data词频统计,测试nltk安装pip3 install html5libimport urllib.requestimport sslssl._create_default_.
2020-06-19 16:35:00
526
原创 解决:urlopen error [SSL: CERTIFICATE_VERIFY_FAILED certificate verify fail
response = urllib.request.urlopen('https://blog.youkuaiyun.com/qq3401247010/article/details/78135506')html = response.read()报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify fail解决方案:而当目标网站使用的是自签名的证书时就会抛出一个 ur
2020-06-19 16:15:56
11259
原创 实用的工具类
版本号比较/** * 如果版本1 大于 版本2 返回true 否则返回fasle 支持 2.2 2.2.1 比较 * 支持不同位数的比较 2.0.0.0.0.1 2.0 对比 * * @param v1 版本服务器版本 " 1.1.2 " * @param v2 版本 当前版本 " 1.2.1 " * @return ture :需要更新 false : 不需要更新 */ public static boolean co.
2020-06-05 14:30:44
159
原创 查询Android CPU架构
其实,在adb shell命令下面,可以通过getprop的方式,获取到一些信息,比如:generic_x86_arm:/ $ getprop|grep arm[ro.bootimage.build.fingerprint]: [google/sdk_gphone_x86/generic_x86_arm:R/RPP4.200409.015/6455311:user/release-keys][ro.build.fingerprint]: [google/sdk_gphone_x86/generic_x
2020-05-29 15:41:28
851
原创 TextView显示Html和处理链接
<p> 感谢您下载xxxx!当您开始使用本软件时,我们可能会对您的部分个人信息进行收集、使用和管理。请您务必审慎阅读、充分理解“使用服务协议”和“隐私政策”各条款,并确定了解我们对您个人信息的处理规则和您所具有的权利和义务,包括但不限于:<br />为了更好提供xxxx和xxxxx的使用和购买等服务,我们会根据您使用具体功能的需要,收集必要的用户信息。<br ...
2019-12-25 17:37:01
322
原创 java和kotlin实现ECC加密
package dataimport org.bouncycastle.jce.provider.BouncyCastleProviderimport java.nio.charset.Charsetimport java.security.*import java.security.interfaces.ECPrivateKeyimport java.security.interf...
2019-12-13 20:25:25
1049
原创 App打开小程序,小程序打开App
App打开小程序(Android)需要以下小程序和app的信息:应用的AppID,小程序的AppID,小程序的原始ID第一步:App所在开放平台关联要跳转的小程序管理中心->移动应用->查看->关联小程序信息->查看关联->关联小程序在搜索框中输入小程序的AppID,点击搜索图标,提交之后,需要再小程序的管理员的微信消息中通过一下即可关联成功!第二...
2019-09-02 17:34:05
2710
原创 android IPV6 访问慢问题解决
之前ios必须得使用ipv6,于是服务器提供ip6访问地址,但是android访问,在4G情况下响应基本上在1s以上,巨慢无比,当时急着上线,也没有顾得上去解决,服务器端直接给了一个ip4的访问地址解决了。经过不断测试,发现每次解析都会收到两个ip地址,ipv6和ipv4,ipv6总是在最前面,会被优先使用,那么我们可以把ipv4放在第一位,让ipv4被使用。public class En...
2019-04-29 11:00:46
4579
原创 排序算法
十大经典排序算法# 冒泡排序def sort(arr): le = len(arr) for i in range(le-1): for j in range(le-1-i): if arr[j] > arr[j+1]: mid = arr[j+1] arr[j+1...
2019-03-27 16:38:35
178
原创 AndroidStudio编译libmp3lame
第一步下载libmp3lame源码。https://sourceforge.net/projects/lame/files/latest/download第二步:赋值libmp3lame和include目录下的所有的扩展名为c和h的文件到AndroidStudio中。#CMakeLists.txt文件:# 这里指定了CMake的最低版本为3.4.1cmake_minimum_req...
2019-03-06 15:47:26
1648
2
原创 CountDownLatch与CyclicBarrier使用与理解
CountDownLatch我之前遇到过这么一个需求:“客户端同时下载视频、音频和大量试题压缩包”。我让线程池分配三个线程同时开启下载三类数据,等到它们都下载完成时再进行数据整合操作。问题来了,如何在没有线程安全问题情况下监听到这三个线程已经都执行完毕了呢?此时CountDownLatch类就是最佳选择。CountDownLatch是一个同步的辅助工具类,允许一个或多个线程,等待其它一组线程...
2019-01-08 16:10:54
864
4
android利用FFmpeg为视频加水印
2018-01-11
android FFmpeg视频解码为YUV像素数据视频文件以及获取视频基本参数信息
2017-08-25
bcprov-jdk15on-1.64.jar
2019-12-13
软件-Android移动网络终端的IPv6接入系统设计与实现 .pdf
2019-12-13
libmp3lame动态库
2019-03-06
禁止预加载的ViewPager
2019-03-06
OpenCV之调用设备摄像头等操作
2018-10-11
C#像java一样优雅的解析JSON数据
2018-09-19
libfaac的so库
2018-09-07
android人脸识别Demo
2018-06-08
OpenSLES播放PCM音频
2018-06-08
音频拼接多种方式
2018-06-08
FFmpeg音频拼接报错,恳请大牛们帮忙解决一下吧!
2018-02-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人