- 博客(64)
- 资源 (8)
- 收藏
- 关注
原创 android调用ffmpeg解析rtsp协议的视频流
android应用层调用ffmpeg解析rtsp协议的视频流,得到yuv数据转bitmap显示
2025-02-20 15:39:49
752
原创 Android - NDK:编译可执行程序在android设备上运行
可执行文件生成位置:app\build\intermediates\cmake\release\obj\arm64-v8a\exec。ndk工程中build.gradle设置。
2025-01-07 21:35:33
430
原创 Android - NDK :JNI实现异步回调
在android代码中,通过JNI调用c层子线程执行耗时任务,在c层子线程中把结果回调到android层,C语言小白,请批评指正!
2025-01-07 16:34:03
722
原创 Android - NDK:调用Jni方法并传入 int, double, float, String类型的参数
本文介绍java层向jni层传递基本数据类型的参数,主要涉及到java层-->jni层-->c/c++层的数据转换,模拟了从java层到jni层再到C/C++层的调用流程
2024-09-10 16:38:07
782
原创 Android - NDK:在Jni中打印Log信息
在Jni中打印Log信息1、在配置CMakeLists.txtfind_library( # Sets the name of the path variable. log-lib # Specifies the name of the NDK library that # you want CMake to locate. log)# Specifies libraries CMake should link to your targ
2024-09-10 15:14:28
650
原创 Android - NDK: 在jni层生成java层对象,并调用java层的方法
在Jni中生成java层的对象,并给对象的属性赋值,调用对象的方法,在jni中返回java方法的返回值。
2024-09-10 14:39:30
733
原创 java设置指定名称的网络适配器的IP地址
开发中需要外接一个USB设备,然后在上位机通过grpc协议和下位机进行通行,USB设备插到上位机上以后会以一个RNDIS 网络设备存在,如果要想和它通信,需要先设置Rndis网络的地址,每次连接不同的设备后都需要收到设置这个地址,不利于运维人员维护,所以想通过JAVA代码来自动找到Rndis设备,然后在代码中运行CMD命令设置IP地址。
2023-06-13 10:58:24
631
原创 设计原则:依赖倒置
1、高层模块(应用层),不应该依赖底层模块,二者都应该依赖于其抽象。2、抽象不应该依赖细节,细节应该依赖抽象。3、针对接口编程,不要针对实现编程, 每个类都应该继承自接口 或抽象类。
2021-06-22 19:17:00
178
原创 开闭原则的实现
定义一个软件的实体,如类、模块和函数应该对扩展开放,对修改关闭。实现方法用抽象来构件框架,用实现扩展细节实现的核心关键点:面向抽象编程,抽象相对来说是稳定的,让类去依赖于固定的抽象,所以对修改来说是封闭的,通过面向对象的集成以及多态的机制就可以实现对抽象的继承,通过重写改变其固有方法或者实现新的扩展方法ex:版本的更新尽量不修改源代码,但是可以增加新功能优点提高软件系统的可复用性及可维护性 代码实现1、定义接口public interface IFruit { // 返回
2021-06-20 13:19:16
679
原创 自定义选项卡切换
一、实际使用的效果二、自定义可切换的标题栏1、布局<?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/tools"
2021-06-11 16:54:41
432
2
原创 简易定时器
概要能上图就别BB,看右上角的效果。一、其实就是个TextViewpackage com.hisign.id_verification.viewsupport;import android.content.Context;import android.os.CountDownTimer;import android.util.AttributeSet;import android.util.Log;import android.widget.TextView;public class
2020-08-06 13:30:21
322
原创 RxJava学习总结(二)
一、被观察者(Observable)的创建1. createObservable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
2020-06-18 15:30:12
196
原创 android监听屏幕底部导航栏和输入法的显示
记录贴,直接上代码!1、工具类public class LayoutChangedListener { private View decorView = null; private int decorViewHeight = 800; // HD100设备,屏幕的固定高度为800 private OnLayoutChangeListener layoutChangeL...
2019-08-08 09:55:47
940
原创 android自定义圆角按钮,点击实现背景和文字颜色同时变化
1、效果2、基于TextView实现,同时制定TV背景和文字的背景的选择器 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" ...
2019-08-08 09:37:05
582
原创 Android连接USB打印机
项目中需要用到android设备通过USB连接热敏打印机打印图文混排的小条,总结一下。外部主要是用这个方法来打印: /** * 打印核验小条 * 子线程中运行 */ private static int times = 0; public void printVerifyData(String tmpName, ...
2019-08-04 16:10:55
4070
原创 android通过USB读取身份证信息
一、USB的通信流程搜索设备—>建立连接—>通信1、搜索设备 /** * 获取目标UsbDevice * @param view */ public void searchUsbDevice(View view) { HashMap<String, UsbDevice> deviceMap = mUsbMan...
2019-08-02 15:52:45
3229
4
原创 手动模拟EventBus框架
一、实现原理1、主要的实现类为EventBus类,用观察者实际模式来实现(观察者设计模式参考),包含三个主要的方法:register、 unregister、post2、订阅者(一般为activity)通过EventBus的register和unRegister来订阅和取消订阅3、事件发布者通过post来发布数据,EventBus找到自己缓存的所有订阅者,并找到每一个订阅者的所有方法并执行...
2019-07-27 10:45:38
189
原创 RxJava学习总结(一)
一、概念函数响应式编程(Functional Reactive Programming:FRP):是一种通过一系列函数的组合调用来发射,转变,监听,响应数据流的编程范式(这概念我基本理解不了~)。在RxJava中,函数响应式编程具体表现为:一个观察者(Observer) 订阅一个可观察对象(Observable)通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程...
2019-07-19 15:21:06
461
原创 Android数据加密传输
客户端在和平台端进行数据的通讯时,有时需要对传输的数据进行加密,下面介绍一些在开发中常用的加解密方法。一、对称加密1、对称加密(又称为私人秘钥加密/共享秘钥加密):加密与解密使用同一秘钥,也称为单密钥加密。2、加密强度不高,但效率高,加密解密的速度比较快,适合数据比较长时的使用。3、密钥分发困难,密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦4、常见对称密钥加密算法(1)、DE...
2019-07-17 15:34:22
710
原创 AndroidSudio+SVN建立分支、切换分支
1、AndroidStudio建立分支,右击项目名称:Subversion–>Branch or Tag…2、 指定建立分支的来源,是本地工程,还是来自SVN的代码库3、 指定基于SVN上的某一次提交建立分支4、 指定分支代码的存放地点,以及分支的名称。5、确认分支建立成功6、切换分支 ,右击项目名称:SubversionUpdate Directory常用GIT命令使...
2019-07-15 13:58:52
539
原创 Android设备和PC端通过USB线通信
一、原理通过 adb forward来实现,adb forward tcp:7777 tcp:8888。将本机7777端口收到的数据,转发到android设备的8888端口上。二、实现步骤1、在android设备上建立一个端口为8888的SocketServer,并打开server到监听状态,即serverSocket.accept()。2、监听PC上的7777端口,即执行adb for...
2019-07-13 09:49:52
1883
原创 观察者设计模式的理解
一、概念观察者设计模式: 行为型的设计模式,也叫作发布订阅模式。两个角色:被观察者(Observer),观察者(Observerable)。被观察者维护观察者实例列表,当有事件发生时,调用观察者的方法进行通知。二、代码实现1、观察者/** * 观察者 */public interface Observer { // 被观察者有事件产生时,通过这个方法通知观察值 p...
2019-07-10 09:18:56
227
原创 Android蓝牙打印机打印图片文字
一、打印的效果图,打印照片+二维码+文字二、蓝牙相关组件介绍 /** * 代表本地蓝牙适配器(蓝牙无线电)。BluetoothAdapter是所有蓝牙交互的入口。 * 使用这个你可以发现其他蓝牙设备,查询已配对的设备列表, * 使用一个已知的MAC地址来实例化一个BluetoothDevice, * 以及创建一个BluetoothServerSo...
2019-06-28 15:58:52
10606
13
原创 Android的事件传递机制
**一、当一个按钮的点击事件产生后,它的传递过程如下:Activity–>Window–>View**1、点击事件用MotionEvent来表示,当一个点击事件发生时事件最先传递给当前的Activity,由Activity的dispatchTouchEvent来进行事件的分发。2、在Activity的dispatchTouchEvent中通过window对象(通过getwind...
2019-06-27 16:10:12
278
原创 android自定义RadioButton的样式
一、样式的实现 <TextView android:layout_width="wrap_content" android:layout_height="50dp" android:layout_gravity="center" andro...
2019-06-19 18:54:20
2223
原创 android定时任务总结
一、Handler + Runnable private void testHandler() { // 开始启动任务 MyApplication.getMyApplication().mHandler.post(handlerRunnable); } // 用handler的延迟任务 private Runnable hand...
2019-02-27 11:27:28
266
原创 JAVA反射
一、通过反射执行构造方法// 1、反射执行构造函数(无参数)Object obj = myObjectClass.newInstance();System.out.println("obj = " + obj);// 2、反射执行构造函数(有参数)Class myObjectClass1 = Class.forName("com.hisign.reflection.MyObject")...
2019-01-21 17:27:20
133
原创 android7.0获取静态IP、网关、子网掩码、DNS
/** * 获取静态IP的相关信息 * @param context * @return */ public Map&amp;lt;String,String&amp;gt; getIps(Context context){ Map&amp;lt;String,String&amp;gt; ipMaps = new HashMap&amp;lt;
2019-01-18 09:02:08
4936
3
原创 android7.0设置系统时间
public void setAndroidSystemTime(Context mContext){ String time = "2019-01-17 17:30:54" SimpleDateFormat simpleDateFormat = SDF_THREAD_LOCAL.get(); if (simpleDateFormat == null) { ...
2019-01-18 08:54:57
5060
2
原创 android反射获取系统属性值
/** * 获取当前系统的版本名称 * @return */ public String getSystemVersionName(){ String ver = null; try { systemProperties_get = Class.forName(&quot;android.os.System...
2019-01-09 16:46:30
819
原创 android(activity、dialog)隐藏底部导航栏
if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { View v = this.getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } el...
2018-09-14 11:53:45
6446
原创 打开USB摄像头
一、确定USB摄像头的名称String nodeNames[] = android_command("ls /sys/class/video4linux");public static String[] android_command(String cmd) { String result = null; String con = ""; Process p; ...
2018-08-02 19:15:31
1144
原创 图片生成、转换(总结帖)
1、YUV转bitmap// YUV转RGBfinal YuvImage image = new YuvImage(hsfeVerifyResult.getImageBuf(), ImageFormat.NV21, 640, 480, null); ByteArrayOutputStream os = new ByteArrayOutputStream(hsfeVerif...
2018-08-01 09:50:22
357
原创 MVP的简单总结
MVP的结构以前做web时我们用过MVC的结构(javaBean +jsp+servlet),个人感觉android里面的MVP和那个MVC是一样的。 M:model,功能模块的实现 V :显示层,一般由activity来充当,UI相关的一下操作 P:presenter专注于你的业务逻辑,model层方法的调用,返回结果给V层显示。三者的关系1、P层起到桥梁的作用,他持有V层和...
2018-04-16 11:37:04
375
原创 Retorfit+RxJava--单文件上传、多文件+文字一起传、form-data表单提交
一、引入依赖compile 'com.squareup.retrofit2:retrofit:2.3.0'compile 'com.squareup.retrofit2:converter-gson:2.3.0'compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'compile 'com.squareup.okhttp3:loggi
2018-01-30 11:36:55
2075
原创 自定义CheckBox的复选框、复选框和文字的间距
原生的有点丑,UI的同学给了个切图替换 一下。 一、创建selector 两张图,一个是选中状态,一个是未选中状态。<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@dra
2017-12-28 10:12:58
4991
原创 总结一些常用的adb命令
总结一下工作中常用的adb命令,便于以后查找,发现新的用法是便于追加。一、log相关1、log中显示时间 :adb logcat -v time 2、按照TAG过滤:adb logcat -s yourTag 3、过滤出来包含某个关键字的log:adb logcat | grep your_key_words 4、过滤掉包含某个关键字的log:adb logcat | grep ...
2017-12-12 16:08:02
576
原创 自定义控件
一、背景:项目中要用到好多一模一样的控件,且每一个控件有自己的各种状态和相对独立的业务逻辑,为了使代码简洁、可复用可移植,把这个控件独立抽取出来,做成了一个自定义的控件。
2017-12-12 13:55:31
264
usb-idcard-reader.zip
2019-08-02
android端HttpServer的实现
2017-06-28
AIDL测试程序
2015-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人