![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
路和远方
这个作者很懒,什么都没留下…
展开
-
Android KeyStore 秘钥导入
【代码】Android KeyStore 秘钥导入。原创 2023-10-09 15:32:31 · 471 阅读 · 0 评论 -
OpenCV 图像形态学 - android
OpenCV 图像形态学 - android腐蚀Mat src;bitmap2mat(env,src,bitmap);Mat dest;Mat kernel = getStructuringElement(MORPH_RECT,Size(5,5));erode(src,dest,kernel);mat2bitmap(env,dest,bitmap);膨胀Mat src;bitmap2mat(env,src,bitmap);Mat dest;Mat kernel = getStru原创 2022-03-04 12:12:50 · 4289 阅读 · 0 评论 -
JNI之OpenCV卷积操作
JNI之OpenCV卷积操作 // [ // 0,-1,0, // -1,5,-1, // 0,-1,0 // ] // 卷积操作 Mat source; bitmap2mat(env, source, bitmap); // 生成一个全零矩阵 Mat dest = Mat::zeros(source.size(), source.type()); // 获取列数 int cols = (source.c原创 2022-03-03 09:46:44 · 4706 阅读 · 0 评论 -
JNI之Bitmap灰度图(RGBA_8888和RGB_565)
JNI之Bitmap灰度图RGBA_8888共32位RGB_565共16位实现代码如下: AndroidBitmapInfo info; AndroidBitmap_getInfo(env, bitmap, &info); void *pixels; AndroidBitmap_lockPixels(env, bitmap, &pixels); if (info.format == ANDROID_BITMAP_FORMAT_RGBA_8888) {原创 2022-02-25 16:55:24 · 2587 阅读 · 0 评论 -
Windows下利用NDK编辑可执行文件
Windows下利用NDK编辑可执行文件配置相应的环境 JDK ANDROID NDK环境配置就不概述了,可以自行百度准备文档hello.c#include <stdio.h>int main(){ printf("hello world\n"); return 0;}Android.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_ARM_MODE := armLOCAL_MODULE := hell原创 2022-02-11 11:06:59 · 1435 阅读 · 0 评论 -
smalidea的使用
smalidea的使用smalidea是一个IntelliJ IDEA/Android Studio smali语言插件,可实现动态调试smali代码。下载插件github地址:https://github.com/JesusFreke/smalidea -> DOWNLOAD安装插件File->Settings->Plugins->install plugin from disk->选择下载的zip包准备1.测试应用的release包,反编译,并修改清单文件中的原创 2022-02-10 10:02:45 · 2322 阅读 · 0 评论 -
Android之反编译
反编译创建安卓项目,并编写示例代码,编译打包布局代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tool原创 2022-01-29 11:57:20 · 2497 阅读 · 0 评论 -
JNI异常处理
JNI异常处理C++的异常处理1.自定义struct覆写exception里面的方法2.throw 抛出自定义类型异常,catch后处理try { // c++的异常处理, // 1.覆写继承exception的方法,抛出自定的异常类 // 2.throw 自定义异常(string,int等),catch后处理 int a = 10; int b = 0; if (b == 0) {// throw "b is zero"; throw NoZeroExc原创 2021-09-28 17:38:21 · 307 阅读 · 0 评论 -
Android之OpenCv简单人脸识别功能(Bitmap)
Android之OpenCv简单人脸识别功能OpenCv的下载下载地址 - https://opencv.org/releases/doc 文档目录samples 示例代码sdk 编译后的动态库以及头文件案例代码人脸识别1.人脸信息录入2.获取相机的Bitmap,检测人脸信息(保证人脸特征信息比较精准),正常,眨眼睛,张嘴巴3.提取特征值Mat转Bitmap// 将Mat转bitmapvoid mat2Bitmap(JNIEnv *env,jobject bitmap,Mat原创 2021-09-28 09:37:28 · 1538 阅读 · 0 评论 -
JNI之C调用Java方法
JNI之C调用Java方法自定义Java方法1.自定义Java方法// java方法public class MyJavaClass { public String getName(String content) { return "hello world -> " + content; }}2.编译该类获取.class 文件javac MyJavaClass.java3.获取该类的签名javap -p -s 包名.MyJavaClass//原创 2021-09-27 19:18:33 · 6643 阅读 · 0 评论 -
Android NDK 之 校验包名和签名
Android NDK 之 校验包名和签名Java方法获取包名和签名信息fun getSignaturesInfo(context: Context):String{ // 包名 val packageName = context.packageName val packageManager = context.packageManager val packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GE原创 2021-09-14 09:39:30 · 805 阅读 · 0 评论 -
Android NDK 之 MD5 数据签名校验
Android NDK 之 MD5 数据签名校验加密定义:对原来的明文的文件或数据按照某种算法进行处理,使其成为一种不可读的密文加密算法对称加密:加密和解密的秘钥是同一个,常见的有DES,AES非对称加密:加密和解密使用不同的秘钥,一般通过公钥进行加密,私钥进行解密,常见的有RSA** MD5基本不算加密,只是对数据的完整性进行校验 **代码展示md5.h/********************************************************* brief:原创 2021-09-14 09:27:39 · 394 阅读 · 0 评论 -
Looper,Handler,MessageQueue的分析
Android消息机制解析ActivityThread:main(){ .... Looper.prepareMainLooper(); .... // 创建ActivityThread对象,并绑定到AMS ActivityThread thread = new ActivityThread(); // 建立Binder通道,创建新线程,一般的应用程序都不会是system,因此设置false,会绑定到AMS thread.attach(false, startSeq); .....原创 2021-09-09 12:25:01 · 82 阅读 · 0 评论 -
Android接入OpenCv实现人脸识别
Android接入OpenCv实现人脸识别导入OpenCv获取资源下载地址:https://opencv.org/releases/文件目录:opencv-4.1.0-android-sdk/OpenCV-android-sdk/sdk/native --- jni/include 头文件 --- libs 动态库Cmakecmake_minimum_required(VERSION 3.4.1)add_library( native-lib SHARE原创 2020-06-30 17:42:02 · 1733 阅读 · 4 评论 -
获取用户短信列表
获取用户短信列表权限<uses-permission android:name="android.permission.READ_SMS" />// 如果不需要用户姓名,可不需要该权限<uses-permission android:name="android.permission.READ_CONTACTS" />获取用户短信列表// 根据手机号查询用户名private static String getDisplayName(Activity activity,原创 2020-06-17 17:29:11 · 1441 阅读 · 0 评论 -
获取用户通讯录列表
获取用户通讯录权限<uses-permission android:name="android.permission.READ_CONTACTS" />获取通讯录列表Cursor localCursor = activity.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._ID, ContactsContra原创 2020-06-17 17:16:54 · 911 阅读 · 0 评论 -
Ubuntu下ndk编译ffmpeng
Ubuntu下ndk编译ffmpeng下载和配置ndk1.获取资源获取sdkmanager可下载资源路径 sdkmanager --list --sdk_root=${ANDROID_HOME}2.找到ndk下可下载文件位置 ndk-bundle| 21.2.6472646 | NDK ndk;16.1.4479499| 16.1.4479499 | NDK (S原创 2020-06-06 18:17:16 · 531 阅读 · 0 评论 -
Ubuntu下安装android编译环境,编译打包android项目
Ubuntu下安装android编译环境,编译打包android项目常见问题1.首次登录,没有root权限,无法切换到root用户使用命令 sudo passwd root重置root用户的密码2.无法使用ifconfig 命令获取ip地址使用命令安装程序 sudo apt install net-tools3.远程登录安装程序 sudo apt install openssh-server远程登录命令 ssh 用户名@ip地址4.上传/下载文件到远程服务器scp -r 本地文件目录 用原创 2020-06-06 04:37:25 · 1373 阅读 · 0 评论 -
如何查看Android手机CPU类型
如何查看Android手机CPU类型如何查看Android手机CPU类型是armeabi,armeabi-v7a,还是arm64-v8a?1.安装adb工具2.手机打开“开发人员选项”,开启USB调试模式。3.数据线连接手机,在终端输入adb shell getprop ro.product.cpu.abi...原创 2020-06-04 00:16:13 · 3680 阅读 · 0 评论 -
Android之获取地理位置
Android之获取地理位置权限// 清单文件中配置<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />// 申请权限private String[] locationPermission = {Manifest.permiss原创 2020-05-25 11:29:34 · 1342 阅读 · 0 评论 -
解决onelink短链被应用市场劫持的问题
解决onelink短链被应用市场拦截的问题1.Onelink是啥就不说了,你可以去问谷歌2.需求问题:国内应用市场自带浏览器会识别onelink短链,跳转到自家应用市场不跳转手机自带的应用市场,我想跳转到手机上安装的GooglePlay,怎么办?...原创 2020-05-25 11:18:19 · 2688 阅读 · 0 评论 -
WebView加载本地html文件
WebView加载本地文件在使用webviwe的时候,我们会发现webview的加载速度很慢,下面讲一种优化方案,直接加载本地文件,如js,css,图片等允许使用jswebsettings.setJavaScriptEnabled(true);加载本地文件wvContent.setWebViewClient(new WebViewClient(){ @Nullable @Override public WebResourceResponse shouldIntercept原创 2020-05-18 15:42:27 · 1612 阅读 · 0 评论 -
Android之文件及文件目录创建
Android之文件及文件目录创建不BB,直接上代码 private boolean createFile(String path){ if(TextUtils.isEmpty(path)) return false; return createFile(new File(path)); } private boolean createFile(File file){ if(file == null) return false;原创 2020-05-15 11:28:09 · 892 阅读 · 0 评论 -
JNI之logcat日志
在Logcat中可以看到JNI中的C++打印的日志1.导入lib#include <android/log.h>2.定义函数// 定义tag#define LOG_TAG "C_TAG"// 定义日志等级#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)#define...原创 2020-04-07 13:34:29 · 453 阅读 · 0 评论 -
Android之Gradle基础
需求一在gradle文件中创建N个公共变量,在app和library中可以调用在项目下创建一个文件config.gradleext { // 自定义变量 test_envi = "http://192.168.0.1" online_envi = "http://www.shuzhuchengfu.com" // 定义字典 test_map = [...原创 2020-03-28 16:47:11 · 144 阅读 · 0 评论 -
Smali入门
安装插件写一个最简单的java类package barray.demo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;public class MainActivity extends AppCompatActivity { String T原创 2017-10-23 10:09:45 · 380 阅读 · 0 评论 -
Android自定义控件-下载进度条
Android自定义控件-下载进度条效果展示源码布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/...原创 2019-10-22 13:54:14 · 931 阅读 · 2 评论 -
Android getColor 方法过时及解决
Android getColor 方法过时过时方法@ColorInt@Deprecatedpublic int getColor(@ColorRes int id) throws NotFoundException { return getColor(id, null);}新增方法@ColorIntpublic int getColor(@ColorRe...原创 2018-04-12 14:17:03 · 2855 阅读 · 0 评论 -
Dagger入门
在Activity中有可能出现这样的情况:public class LoginActivity extends AppCompatActivity { LoginActivityPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCr转载 2017-10-25 10:40:29 · 352 阅读 · 0 评论 -
闪屏页的实现笔记
1.准备一张图片 background_splash 2.将这张图片设置到SplashActivity的主题中作为背景。进入你的style.xml文件,然后为闪屏页添加一个新的主题:<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.Dar转载 2016-11-16 14:22:24 · 231 阅读 · 0 评论