- 博客(22)
- 资源 (2)
- 收藏
- 关注
原创 POS交易名词简介
1、kek:加密密钥,用于加解密主密钥。导进去的主密钥是经过KEK加密后的密文,厂商在SDK再用kek解密主密钥密文。KEK用3DES算法加密主密钥主密钥:用于解密签到获取的工作密钥密文。工作密钥:包括PinKey(用于密码加密)和MacKey(用于报文加密)2、参数下载3、签到:获取pinkey、mackey、批次号签退:先批结算,然后签退,否则批次号不会更新。4、冲正 :当有消费类交易发生上送
2017-10-27 21:50:48
533
原创 不同进制、编码之间的转换
进制转换十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制转成十进制Integer.valueOf("FFFF",16).toString()八进制转成十进制Integer.valueOf("876",8).toString
2017-10-27 21:50:45
385
原创 手机无法打印log信息
一、华为手机在出厂的时候禁用了log日志的权限。开放权限:1.拨号界面输入*#*#2846579#*#*进入测试模式;2.点击projectmeu-点击第三个-后台设置-进入了之后-点击第2个-log设置-选择log开关-打开log开关,并将log级别设置为VERBOSE.二、360奇酷手机1、在桌面点击拨号,在拨号盘输入“*20121220#”,进入工程模式;2、点击“日志输出等级”3、选择下面
2017-10-27 21:50:43
396
原创 Freeline秒级编译
直接在Studio中安装插件Freeline Plugin 一键搞定是最快的,但是很大可能会安装失败不知道为啥,如果想要尝试流程请看下边1、项目gradle中添加dependencies {.........classpath'com.antfortune.freeline:gradle:0.8.7'// NOTE: Do not place your application depen
2017-10-27 21:50:40
382
原创 TLV报文解析
TLV报文结构TLV是一种可变格式,意思就是:Type类型(2位), Lenght长度(2位),Value值(Len*2位);FF 01 0490 10 D1 56 00 01 01 80 03 80 00 00 00 01 00 00 00 0028 10 41 31 30 31 30 31 30 30 31 33 30 30 30 30 30 3229 08 34 33 31 30 32 3
2017-10-27 21:50:35
2977
原创 反编译
工具:链接:http://pan.baidu.com/s/1pL2ubsZ 密码:695q1、将apk后缀改为.rar ,用解压缩工具解压2、在命令行中键入 xx:xx/xx/dex2jar.bat xx:xxx/xxx/classes.dex 此时在classes.dex文件夹下会生成一个classes_dex2jar.jar文件使用命令方式3、使用jd-gui打开classes_dex
2017-10-27 21:50:32
207
原创 CRC32校验
在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,常见的有奇偶校验、因特网校验和循环冗余校验等。校验工具:链接:http:
2017-10-27 21:50:29
1480
原创 GitLab
创建仓库SSH:Git BashA:进入SSH目录:cd ~/.ssh(1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd ~/.ssh进入SSH目录(2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步B,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH
2017-10-27 21:50:27
266
原创 OkHttp
post和get区别(1)get是从服务器上获取数据,post是向服务器传送数据。(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。(2)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。(2)GET方式提交的数据最多只能有10
2017-10-27 21:50:24
171
原创 GreenDao
1、使用前的准备新建Android项目 build.gradle中添加compile'org.greenrobot:greendao:3.2.2'新建java项目 build.gradle中添加compile'org.greenrobot:greendao-generator:3.2.2'2、生成dbUtil文件public classMyClass {/***使用步骤* 1、创建Sche
2017-10-27 21:50:21
267
原创 8583报文格式分析
解析8583报文工具在此奉上:链接:http://pan.baidu.com/s/1i5OSLe9 密码:lw1oPOS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:报文结构00001——TPDU说明:长度为10个字节,压缩时用BCD码表示为5个字节长度的数值。00002——报文头说明:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。符号定义:00001
2017-10-27 21:50:19
1009
原创 AIDL
AIDL:IPC 、多个应用程序 、多线程Binder: 只有IPC、 没有多线程 、多个应用程序Messager:只有IPC 、没有多线程demo下载地址:https://github.com/soulListener/AIDLPro.git1、AIDL定义:interfaceIMyAidlInterface{//计算两个数的和intadd(intvalue1,intvalue2);}
2017-10-27 21:50:16
251
原创 CoordinatorLayout+AppBarLayout隐藏标题栏
首先上代码xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">app:layout_scrollFlags="scroll|enterA
2017-10-27 21:50:13
1164
原创 BottomSheetDialog底部弹出框、butterkoife使用
1.BottomSheetDialog底部弹出框该控件在design包中,因此需要导入design包final BottomSheetDialog bottomSheetDialog =newBottomSheetDialog(this);//外部点击不可取消bottomSheetDialog.setCanceledOnTouchOutside(false);imgSettingSele
2017-10-27 21:50:10
639
原创 1.adb命令 2.DES加密 3.BigDecimal
1.adb命令由于POS机对Android系统进行了重新开发,对软件安装与卸载进行了限制,因此使用adb命令实现该功能。首先安装adb,或者直接下载链接:http://pan.baidu.com/s/1hseQmSO 密码:xx25软件安装 adb install 文件名(全路径) 例:adb install "C:\Users\app_v1.0_apos.apk"软件卸载 adb uninsta
2017-10-27 21:50:08
839
原创 1、Android调用WebService 2、OKhttp 简单调用 3、界面解析工具HierarchyViewer
1、Android调用WebService需要jar包Ksoap2,下载地址:http://code.google.com/p/ksoap2-android/downloads/list必须有三个参数:WSDL的uri、命名空间、要调用的方法(如果需要传参数调用soapObject.addProperty()方法)由于是网络访问 因此要在线程中进行网络的访问String WSDL_URI ="
2017-10-27 21:50:05
1948
原创 1、全沉浸式自定义颜色
一、BaseActivity沉浸式状态栏1、全沉浸式自定义颜色//判断当前SDK版本号,如果是4.4以上,就是支持沉浸式状态栏的if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.LOLLIPOP) {getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGR
2017-10-27 21:50:02
285
原创 1、EditText 2、include、merge、ViewStub 3、DrawerLayout
一、登录界面EditText(1)android:hint=""设置默认提示信息(2)android:singleLine="true" 设置单行输入,一旦设置为true,则文字不会自动换行。(3)android:inputType=“” 指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text,textUri, phone,
2017-10-27 21:49:59
291
原创 Android智能POS应用开发学习清单
学习清单:1、Android客户端开发MVPService、 AIDL 、Parcelable BroadcastReceiverSocket通信WebServiceSQL数据库MonkeyLeakCanary2、拉卡拉POS交互拉卡拉智能POS SDKIC卡规范(APDU)3、居民卡、Psam卡居民卡卡结构Psam卡结构4、DES加密MAC加密BCD码 ascll码 二进制码 10进制码 1
2017-10-27 21:49:56
1598
原创 MVP新手尝试以及自动生成 View、Presenter
首先放上GitHub链接:https://github.com/soulListener/MVP-master.gitMVPActivity链接:首先来看MVP各自负责什么:Model,负责定义数据(解决什么是数据)Presenter, 负责在Model和View之间,从model里取出数据,格式化后在View上展示(解决如何把数据和用户界面放在一起)。View,负责担任一个被动界面,用于展示数据
2017-10-27 21:49:54
345
原创 APDU
应用层APP通过APDU指令(遵循PBOC规范)来对智能pos机的非接触式卡片和接触式卡片进行控制,关于智能pos读卡的操作文档主要都在《中国金融集成电路(IC)卡规范第1部分 电子钱包电子存折应用卡片规范》中的apdu指令,接下来介绍APDU指令APDU报文主要分为两类:C-APDU(发送报文)和R-APDU(接受报文)一、C-APDU1、报文格式。C-APDU有4字节的必备长度和1个可变长度条
2017-10-27 21:49:51
3833
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人