- 博客(60)
- 资源 (8)
- 收藏
- 关注
原创 Android - NDK:调用Jni方法并传入 int, double, float, String类型的参数
本文介绍java层向jni层传递基本数据类型的参数,主要涉及到java层-->jni层-->c/c++层的数据转换,模拟了从java层到jni层再到C/C++层的调用流程
2024-09-10 16:38:07 564
原创 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 483
原创 Android - NDK: 在jni层生成java层对象,并调用java层的方法
在Jni中生成java层的对象,并给对象的属性赋值,调用对象的方法,在jni中返回java方法的返回值。
2024-09-10 14:39:30 658
原创 java设置指定名称的网络适配器的IP地址
开发中需要外接一个USB设备,然后在上位机通过grpc协议和下位机进行通行,USB设备插到上位机上以后会以一个RNDIS 网络设备存在,如果要想和它通信,需要先设置Rndis网络的地址,每次连接不同的设备后都需要收到设置这个地址,不利于运维人员维护,所以想通过JAVA代码来自动找到Rndis设备,然后在代码中运行CMD命令设置IP地址。
2023-06-13 10:58:24 546
原创 设计原则:依赖倒置
使用背景 公司生产了几种核验设备(108,208,380等),每一款核验设备上面都有测温功能,对应的测温模块来源于不同厂家的不同型号,有的是串口接入的,有的是USB口接入的。在代码中进行测温并获取温度信息时:具体的实现类:public class TemperatureManager { public void doUsbTemperature(){ System.out.println("USB测温模块开始工作"); } public double g
2021-06-22 19:17:00 158
原创 开闭原则的实现
定义一个软件的实体,如类、模块和函数应该对扩展开放,对修改关闭。实现方法用抽象来构件框架,用实现扩展细节实现的核心关键点:面向抽象编程,抽象相对来说是稳定的,让类去依赖于固定的抽象,所以对修改来说是封闭的,通过面向对象的集成以及多态的机制就可以实现对抽象的继承,通过重写改变其固有方法或者实现新的扩展方法ex:版本的更新尽量不修改源代码,但是可以增加新功能优点提高软件系统的可复用性及可维护性 代码实现1、定义接口public interface IFruit { // 返回
2021-06-20 13:19:16 642
原创 自定义选项卡切换
一、实际使用的效果二、自定义可切换的标题栏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 388 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 296
原创 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 174
原创 android监听屏幕底部导航栏和输入法的显示
记录贴,直接上代码!1、工具类public class LayoutChangedListener { private View decorView = null; private int decorViewHeight = 800; // HD100设备,屏幕的固定高度为800 private OnLayoutChangeListener layoutChangeL...
2019-08-08 09:55:47 898
原创 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 548
原创 Android连接USB打印机
项目中需要用到android设备通过USB连接热敏打印机打印图文混排的小条,总结一下。外部主要是用这个方法来打印: /** * 打印核验小条 * 子线程中运行 */ private static int times = 0; public void printVerifyData(String tmpName, ...
2019-08-04 16:10:55 3952
原创 android通过USB读取身份证信息
一、USB的通信流程搜索设备—>建立连接—>通信1、搜索设备 /** * 获取目标UsbDevice * @param view */ public void searchUsbDevice(View view) { HashMap<String, UsbDevice> deviceMap = mUsbMan...
2019-08-02 15:52:45 3138 3
原创 手动模拟EventBus框架
一、实现原理1、主要的实现类为EventBus类,用观察者实际模式来实现(观察者设计模式参考),包含三个主要的方法:register、 unregister、post2、订阅者(一般为activity)通过EventBus的register和unRegister来订阅和取消订阅3、事件发布者通过post来发布数据,EventBus找到自己缓存的所有订阅者,并找到每一个订阅者的所有方法并执行...
2019-07-27 10:45:38 162
原创 RxJava学习总结(一)
一、概念函数响应式编程(Functional Reactive Programming:FRP):是一种通过一系列函数的组合调用来发射,转变,监听,响应数据流的编程范式(这概念我基本理解不了~)。在RxJava中,函数响应式编程具体表现为:一个观察者(Observer) 订阅一个可观察对象(Observable)通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程...
2019-07-19 15:21:06 434
原创 Android数据加密传输
客户端在和平台端进行数据的通讯时,有时需要对传输的数据进行加密,下面介绍一些在开发中常用的加解密方法。一、对称加密1、对称加密(又称为私人秘钥加密/共享秘钥加密):加密与解密使用同一秘钥,也称为单密钥加密。2、加密强度不高,但效率高,加密解密的速度比较快,适合数据比较长时的使用。3、密钥分发困难,密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦4、常见对称密钥加密算法(1)、DE...
2019-07-17 15:34:22 664
原创 AndroidSudio+SVN建立分支、切换分支
1、AndroidStudio建立分支,右击项目名称:Subversion–>Branch or Tag…2、 指定建立分支的来源,是本地工程,还是来自SVN的代码库3、 指定基于SVN上的某一次提交建立分支4、 指定分支代码的存放地点,以及分支的名称。5、确认分支建立成功6、切换分支 ,右击项目名称:SubversionUpdate Directory常用GIT命令使...
2019-07-15 13:58:52 517
原创 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 1788
原创 观察者设计模式的理解
一、概念观察者设计模式: 行为型的设计模式,也叫作发布订阅模式。两个角色:被观察者(Observer),观察者(Observerable)。被观察者维护观察者实例列表,当有事件发生时,调用观察者的方法进行通知。二、代码实现1、观察者/** * 观察者 */public interface Observer { // 被观察者有事件产生时,通过这个方法通知观察值 p...
2019-07-10 09:18:56 208
原创 Android蓝牙打印机打印图片文字
一、打印的效果图,打印照片+二维码+文字二、蓝牙相关组件介绍 /** * 代表本地蓝牙适配器(蓝牙无线电)。BluetoothAdapter是所有蓝牙交互的入口。 * 使用这个你可以发现其他蓝牙设备,查询已配对的设备列表, * 使用一个已知的MAC地址来实例化一个BluetoothDevice, * 以及创建一个BluetoothServerSo...
2019-06-28 15:58:52 10424 13
原创 Android的事件传递机制
**一、当一个按钮的点击事件产生后,它的传递过程如下:Activity–>Window–>View**1、点击事件用MotionEvent来表示,当一个点击事件发生时事件最先传递给当前的Activity,由Activity的dispatchTouchEvent来进行事件的分发。2、在Activity的dispatchTouchEvent中通过window对象(通过getwind...
2019-06-27 16:10:12 242
原创 android自定义RadioButton的样式
一、样式的实现 <TextView android:layout_width="wrap_content" android:layout_height="50dp" android:layout_gravity="center" andro...
2019-06-19 18:54:20 2153
原创 android定时任务总结
一、Handler + Runnable private void testHandler() { // 开始启动任务 MyApplication.getMyApplication().mHandler.post(handlerRunnable); } // 用handler的延迟任务 private Runnable hand...
2019-02-27 11:27:28 248
原创 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 116
原创 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 4878 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 4994 2
原创 android反射获取系统属性值
/** * 获取当前系统的版本名称 * @return */ public String getSystemVersionName(){ String ver = null; try { systemProperties_get = Class.forName(&quot;android.os.System...
2019-01-09 16:46:30 778
原创 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 6368
原创 打开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 1070
原创 图片生成、转换(总结帖)
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 325
原创 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 356
原创 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 2043
原创 自定义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 4915
原创 总结一些常用的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 550
原创 自定义控件
一、背景:项目中要用到好多一模一样的控件,且每一个控件有自己的各种状态和相对独立的业务逻辑,为了使代码简洁、可复用可移植,把这个控件独立抽取出来,做成了一个自定义的控件。
2017-12-12 13:55:31 248
原创 Android Studio 3.0升级小结
今天把AS的版本升级到了3.0,升级过程小结一下。 1、3.0版本需要升级编译工具的版本: buildToolsVersion ‘26.0.2’ 2、和apt冲突: Error:A problem occurred configuring project ‘:app’. android-apt plugin is incompatible with the Android Gradle
2017-11-17 11:48:23 3964 1
原创 platform.pk8,platform.x509.pem生成keystore的方法
制作环境:Windows7 + cygwin64以下步骤在cygwin下操作1、生成shared.priv.pem openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt2、生成pkcs12 openssl pkcs12 -export -in platform.x509.pem
2017-09-26 08:43:01 2825
原创 android端实现WebService数据传输
在工作中需要实现android客户端想服务端通过webservice协议传输数据,用到了ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar 这个JAR包,把客户端实现的过程做一下记录,方便以后查阅。
2017-07-25 09:17:08 2690
usb-idcard-reader.zip
2019-08-02
android端HttpServer的实现
2017-06-28
AIDL测试程序
2015-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人