- 博客(61)
- 资源 (2)
- 收藏
- 关注
原创 游戏社区App (三):客户端与服务端的加密处理 和 登录
http请求数据无论是GET或者POST都可能会被抓包获取到数据。为了避免用户的敏感数据被窃取(比如密码),需要对数据进行加密处理。一、相关名词解析RSA:非对称加密。会产生公钥和私钥,公钥在客户端,私钥在服务端。公钥用于加密,私钥用于解密。优势在于 不需要共享私钥,避免了私钥泄露的风险。劣势在于 加密效率低,数据量大时耗时也大。AES:对称加密。客服端和服务器端都使用同一个秘钥来进行加密和解密。优势在于 加密效率高缺点在于 秘钥需要共享给客户端,具有泄露的风险MD5:MD5信息摘要算法
2020-06-08 17:50:23
1391
原创 游戏社区App (六):文章编辑与上传
一、文章编辑-Android端示例:1、富文本编辑器富文本编辑器参考的是GitHub上RichEditotAndroid的富文本编辑器实现方式为使用 WebView + JavaScript。原理为使用WebView来显示一个本地HTML。1)、需要先在assets里放置静态网页和需要的初始化css。其中editor.html 为静态网页,editor.js为Android通过js与html相互调用的方法。2)、RichEditor.java 作为富文本的实现类。2、对RichEditot
2020-05-21 17:52:05
516
原创 游戏社区App (五):首页布局与数据整理
一、序言:首页需要的大概的效果:二、RecyclerView控件首先内容页面使用RecyclerView控件。RecyclerView是一个强大的滑动组件。RecyclerView的四大主要组成是:* Layout Manager:Item的布局。* Adapter:为Item提供数据。* Item Decoration:Item之间的Divider。* Item Animat...
2020-05-07 18:00:45
1424
原创 游戏社区App (四):底部导航栏
底部导航栏目标:只需添加相应的按钮和相应的视图,然后就可在Activity中切换显示。大概思路:在底部的LinearLayout中添加相应的图标,然后设置tag,绑定相应的Fragment数组对应的下标值。点击切换的时候,根据获取到的tag值,取出数组中对应下标的Fragment,并显示出来。新建一个BaseBottomDelegate对底部导航栏进行组装public abstract...
2020-04-29 16:07:22
652
原创 游戏社区App (二):网络请求框架的封装
网络请求框架的封装封装后可以在需要网络请求的地方便捷地进行post请求RestClient.builder() .url("https://www.baidu.com/") .success(new ISuccess() { @Override public void onSuccess(String respon...
2020-04-29 16:00:09
403
原创 游戏社区App (一):基本框架
序言:需要做一个类似米游社的游戏社区App。先确定基本架构一、采用多模块Activity+多Fragment架构多模块Activity+多Fragment架构:即一个模块用一个Activity,比如1、登录注册流程使用:LoginActivity + 登录Fragment + 注册Fragment + 填写信息Fragment + 忘记密码Fragment优点:速度快,相比单Ac...
2020-04-29 15:43:58
2833
1
原创 利用Spring Boot为Android App搭建一个简易的后台(一)
一、安装IDEA工欲善其事必先利其器,先下载安装开发工具IDEA。如果已安装,可以直接跳过。官方下载地址百度网盘,提取码:1ie8(包含那啥工具)那啥工具使用方法:1、安装完idea之后,点击试用进入。2、把jetbrains-agent-latest.zip拖入idea3、重启后会弹出那啥框,选择license server,确认。4、那啥完成二、安装MySQL需要安装mys...
2020-04-24 17:53:00
15867
2
原创 手游SDK-Maven私有仓库的搭建
一、配置服务器(如果已有,可以忽略这一步)1、服务器的购买(以阿里云为例)购买阿里云的云服务器ECS,看需求选择对应的配置。唠叨:当时最便宜的1核1G,40GB,1M带宽,Window Service系统的16块一周。2、远程服务器登录阿里云 进去控制台–>实例与镜像–>实例–>远程连接。第一次使用的时候,需要先重置密码(没有默认密码)。如果远程连接时提示需要白名单...
2020-02-24 19:11:15
691
原创 使用apktool回编译Apk错误
问题一:使用apktool回编译时部分Apk时出现错误。具体错误为:brut.androlib.AndrolibException: brut.common.BrutException: could not exec: […以下省略若百字…\AndroidManifest.xml]原因:Apk资源过多解决:下载最新的apktool,下载地址。问题二:使用apktool回编译时Ap...
2020-01-20 16:17:46
4786
1
原创 AS连接夜神模拟器
1、打开CMD到夜神安装目录的bin文件夹下。2、运行nox_adb.exe connect 127.0.0.1:620013、OK示例:D:cd D:\Program Files\Nox\binnox_adb.exe connect 127.0.0.1:62001
2020-01-20 15:50:52
2150
原创 Python:安装PyQt5踩到的坑
问题:安装PyQt5是出现Package ‘pip’ requires a different Python: XXX not in XXXX或者Could not find a version that satisfies the requirement sip>=XXX (from pyqt5) (from versions: )的报错原因: python版本过低解决:升级到高...
2020-01-20 15:41:18
1386
原创 Python制作反编译APK工具
序言:可以利用Python来写一些工具来提高工作效率。把重复繁琐机械化的事情交给Python脚本去完成。这里利用Python来写一个反编译和重签名的工具。一、Python及工具的安装工欲善其事必先利其器。首先下载并安装Python和对应的开发工具。Python的安装进入官网的Downloads下载界面选择对应的python版本。其中executable表示可执行版,需要安装后使用。e...
2020-01-14 17:47:56
3403
原创 Python*:AttributeError: 'function' object has no attribute
报错:AttributeError: ‘function’ object has no attribute解决:可能文件名和方法名重名了
2020-01-13 22:38:46
7940
1
原创 Android:更换了jdk之后,启动出现 系统找不到文件
更换了jdk之后,启动出现 系统找不到文件 C:\ProgramData\Oracle\Java\javapath\java.exe,无法启动原因:C:\ProgramData\Oracle\Java\javapath 中有三个快捷方式,这三个东西并没有改变快捷方式的路径。方法:重新复制三个快捷方式进去...
2020-01-13 22:36:49
337
原创 Android:javax.net.ssl.SSLException: hostname in certificate didn't match
问题:http请求的时候抛出 SSLException 错误原因: 网站使用https服务器,请求的时候遇到证书验证错误。解决:添加 SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());或者try {httpResponse = new DefaultHttpCli...
2020-01-13 22:35:38
315
原创 Android: java.lang.StackOverflowError: stack size
StackOverflowError是由于当前线程的栈满了 ,也就是函数调用层级过多导致。堆栈溢出错误一般是递归调用。出现这种异常,大多是由于循环调用。出现的情况:大多数都是在本方法中调用本方法。也就是我们常说的递归调用,所以才导致这个错误的出现...
2020-01-13 22:34:40
1502
原创 手游SDK-导出
一、提供SDKSDK需要提供给游戏方进行接入,提供的方式可以有 jar包、aar、maven等几种方式。这里我是采用了jar包的形式提供SDK。但Android Studio 并不会自动生成 jar包,所以需要再编写一个gradle自动脚本生成 对应的jar包和资源。1、生成SDK的 jar包示例代码:def buildJar() { FileFilter fileFilter ...
2020-01-04 09:57:06
569
原创 手游SDK-混淆
一、SDK与APP混淆的区别SDK混淆和APP相比除了常用的混淆配置以外,还需要避免混淆暴露给游戏的接口。同时为了避免游戏接入SDK之后混淆了关键代码导致闪退,SDK还需要提供一份混淆配置文件。二、混淆基础Android的代码混淆只需要在AS的build.gradle中配置开启即可。示例代码如下: buildTypes { release { ...
2020-01-03 18:56:18
694
原创 手游SDK-悬浮球
一、游戏内显示悬浮球手游SDK的悬浮球和一般的悬浮窗有点不一样,它只需要在游戏内显示即可,不需要也不能在桌面中显示出来。所以如果使用WindowManager创建悬浮窗,需要监听App是否在前台,如果在,则显示。如果不在则隐藏悬浮窗。而App不在前台了,可能有三种情况:1、正常退出。2、home键回到主界面了。3、点击任务键切换到别的程序。正常退出的情况,那只要正常销毁悬浮窗就好。hom...
2020-01-03 18:48:49
1775
3
原创 手游SDK-数据上报
数据上报可以分为运营统计数据上报 和 崩溃日志数据上报一、运营统计数据上报市面上也已经有很多第三方的统计服务了,比如友盟统计。第三方统计服务的优点是:简单、方便、统计范围广。缺点也很明显: 数据需要保存在第三方,定制化程度不高。1、自己实现数据统计功能上报数据时,需先将上报信息保存到本地文件中。若上报成功则删除本地文件。若上报失败,则间隔一定时间后重新发送。示例代码:public...
2020-01-03 17:47:15
2131
原创 手游SDK-支付
一、支付的基本流程1)点击游戏支付按钮,游戏首先向游戏服务器请求充值,生成一个游戏订单号参数(注意这个订单号和下面的不是同一个)。即点击支付时,游戏会调用X_SDK的支付方法并传入商品金额,商品名称,游戏订单号参数等信息。2)X_SDK与SDK服务器进行通信,向SDK服务器传递对应信息。即把商品金额,商品名称,游戏订单号参数等信息传给服务器。3)SDK服务器生成唯一的订单号,同时在数据库中存...
2019-12-30 18:56:41
2425
1
原创 手游SDK-动画
一、Dialog切换动画。1、动画基础Android 中的动画可以分为逐帧动画、补间动画、属性动画三类。1)、逐帧动画逐帧动画就是依次播放图片,每一帧都是一张图片。利用人眼视觉暂留的原理,实现动画。就如同平时的电影、动漫一样。逐帧动画通常是采用XML资源进行定义,在 <animation-list …/> 标签下使用 <item …/> 子元素标签定义动画的全部帧...
2019-12-30 18:55:16
515
原创 手游SDK-登录界面
登录界面可以通过自定义Dialog来实现。一、登录界面基本Dialog继承Dialog后有三个构造函数,不一定要都实现,但必须实现一个构造函数。这三个构造函数的作用如下:BaseView(Context context) :单纯的传入Context,最常用。在代码中通过new来获得Dialog实例,然后使用show()展示。BaseView(Context context, int th...
2019-12-30 17:36:22
1362
原创 手游SDK-登录
一、登录1、登录的基本流程:(以账密登录为例)1)调用X_SDK的登录方法,进行SDK登录操作。即弹出登录框,等待用户输入账号密码。2) X_SDK与SDK服务器进行通信,向SDK服务器传递对应信息。即把账号密码等信息传给服务器。3)SDK服务器向X_SDK返回token,token中包含了玩家的验证信息。1、2、3 这三步可以理解为调用X_SDK的登录方法,然后等待服务器回调token。...
2019-12-30 16:43:53
3718
原创 手游SDK-概述
手游SDK的基本功能手游SDK的核心功能就是登录和支付、以及数据上报。SDK和普通APP的主要区别在于:SDK是作为一个 module ,也就是程序库,它不能独立存在,需要其他APP去调用.SDK不能引入开源框架,比如图片处理框架Gilde , 网络框架 retrofit和okhttp 等,因为引用该SDK的APP也可能使用相同的开源库,这样就会导致冲突。SDK需要暴露回调接口给被调用...
2019-12-30 16:34:32
2618
原创 Android 悬浮窗 (附圆形菜单悬浮窗)
序言Android悬浮窗的实现,主要有四个步骤:1. 声明及申请权限2. 构建悬浮窗需要的控件3. 将控件添加到WindowManager4. 必要时更新WindowManager的布局一、权限申请需要在 AndroidMainfest.xml 中声明权限<uses-permission android:name="android.permission.SYSTEM_ALER...
2019-12-12 17:38:33
2854
1
原创 Android 混淆
Android的代码混淆只需要在AS的build.gradle中配置开启即可。示例代码如下: buildTypes { release { minifyEnabled true // true - 打开混淆 shrinkResources false // true - 打开资源压缩 pro...
2019-12-12 17:20:57
200
原创 Android 统一打包框架(附源码下载)
序言:目的:通过配置文件完成SDK的接入并且出包。主要就是三个部分:一、SDK接入框架二、各SDK的接入实现三、打包工具一、SDK接入框架1、结构:YMSDK - 业务层访问SDK的唯一入口PluginFactory - 实例化插件的工厂,通过读取assets目录下的sdk_config.xml文件,配置对应的插件信息,在需要实例化插件时,读取这些配置信息,构造对应的SDK实例...
2019-12-12 17:00:11
798
2
原创 抓包工具的使用
一、使用AS的工具抓包(方便但功能不是很全)AS自带的抓包工具Android Profile的使用:(其他抓包工具还有 Charles)1、点击 View > Tool Windows > Android Profiler 打开Android Profiler也可以直接点击下图按钮直接打开2、 从 Android Profiler 工具栏中选择您想要分析的设备和应用进程。 如...
2019-10-14 14:16:18
1040
原创 手机/模拟器 连接 局域网/本地服务器
一、电脑连接局域网中的服务器1、修改hosts,在hosts中新增一个域名。如: 10.1.251.113 api.cleartoken.com具体操作:1、电脑中的hosts一般在 C:\Windows\System32\drivers\etc2、在最后添加 局域网IP和域名, 10.1.251.113 api.cleartoken.com (注意:IP和域名 前都...
2019-10-14 14:10:18
1652
原创 反编译相关
1、把jar包转换成smail文件工具:https://pan.baidu.com/s/1GxoDnGy5AAjSaBMrCpSxQQ使用方法:apktool的简单使用:apktool d [apkFile] -f -o [outputDir]d —— 代表操作是反编译解包(b 代表回编译)[apkFile] —— 需要解包的apk路径, 例如C:\1.apk-f —— 强制覆盖,若...
2019-10-14 14:08:30
271
原创 Android :签名问题 渠道驳回 签名文件里不能有sha256的摘要
问题:签名文件里不能有sha256的摘要(META-INF文件夹中的MANIFEST.MF)解决:在AS的build.gradlez中添加 v1SigningEnabled true 指定签名方式signingConfigs {release {storeFile file("…/…/…/Tools/keys/alias-111111.keystore")storePassword “1...
2019-10-14 10:34:35
358
原创 AS : adb未配置的问题,studio自带adb,只要配置一下环境变量就可以了
我的电脑----属性------环境变量------新建Android,路径studio中sdk的platform-tools文件夹,例如:C:\work\assdk\platform-tools,然后把 %Android% 添加到 Path 中
2019-10-14 10:33:23
1370
原创 AS : org.gradle.api.tasks.compile.CompileOptions.setBootClasspath
1、运行新工程的时候出现 org.gradle.api.tasks.compile.CompileOptions.setBootClasspath 错误。可能的原因:gradle的版本过高与AS不对应,所以可以适当降低一下gradle的版本即:修改工程gradle中的版本...
2019-10-14 10:31:58
1768
1
原创 AS : Please select Android SDK
可以到 “File”——“Settings”——“Android SDK”中点击Edit 更新一下
2019-10-14 10:30:39
127
原创 AS : 卡在 Indexing suspended (context:Project Setup)
可能原因1:升级了gradle版本导致,比如把gradle 3.3升级到4.4解决方法:退回去工程原本的版本。只要修改2处地方,gradle-wrapper.properties 和 工程的build.gradle...
2019-10-14 10:29:41
311
原创 IDEA : The origin server did not find a current representation for the target resource or is not wil
1、可能是你的网址错误,检测一下网址。比如:把http://localhost:8080/chapter2/customer 错误输入成 http://localhost:8080/chapter2
2019-10-14 10:28:42
674
原创 IDEA :Cannot create PoolableConnectionFactory (The server time zone value '???��������??��??' is unr
在连接mysql时出现这个错误,是因为时间无法识别,只要在连接mysql的url后面添加 : ?serverTimezone=UTC 即可如:jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=UTC
2019-10-14 10:26:46
1808
原创 Jenkins安装使用记录
参考:Jenkins+Git+Gradle为Android项目搭建CI环境:https://www.jianshu.com/p/c90e21bf4e23Jenkins教程:https://www.yiibai.com/jenkins/Jenkins安装使用记录首先,创建一个密钥对:ssh-keygen -t rsa -C “jenkins”选择保存文件:/c/Users/Anony/...
2019-08-27 21:57:04
148
原创 查看包签名
使用cmd打开到Java中的bincd C:\Program Files\Java\jre1.8.0_111\bin打开APK包中的META-INF 抽取其中的.RSA文件keytool -printcert -file (查看APK的签名,需要.RSA)keytool -list -v -keystore (查看签名,需要签名)...
2019-08-24 23:03:21
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人