搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
2023面试高手
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【Rust日报】2022-09-14 使用 Rust 构建简单博客 && 华为实习生招募
2
cef在android中使用_Android程序中,内嵌ELF可执行文件-- Android开发C语言混合编程总结...
3
python打包成可执行文件并换程序图标步骤_python生成可执行文件并替换图标
4
两天时间!我搞定了Intel显卡(核显)+Windows安装stable-diffusion-AI画画软件_intel显卡推荐 知乎
5
oracle日期排序语句,oracle先排序再分页
6
判断当前日期是否在某个日期之前_java 判断日期在当月15日之前
7
Android Canvas绘图详解(图文)_android canvas将像素信息画出
8
flutter项目,2024Android架构面试指南
9
HarmonyOS云开发基础认证---练习题二
10
基于Python爬虫浙江湖州餐厅餐馆数据可视化系统设计与实现(Django框架) 研究背景与意义、国内外研究现状
当前位置:
article
> 正文
Android SDK开发技术分享_android 支付sdk开发教程
作者:2023面试高手 | 2024-03-16 15:48:42
赞
踩
android 支付sdk开发教程
最近在工作中负责统一支付平台的SDK开发部分,就此总结下SDK开发的技术点、注意事项、与普通app开发的差别,作为自我总结,也作为公司内部互相学习的分享,希望有Android开发需求或者对Android有兴趣的同学(互相学习称为同学),多多关注,多多回复。
一、SDK开发的概念
Android SDK开发,指为第三方app开发提供功能性封装,提供文档(doc),实例(demo),封装包(jar/aar)等,目前互联网公司提供了许多功能性SDK接入,比如腾讯的QQ登录微信登录、广点通联盟、QQ地图接入,阿里的支付宝支付,百度的百度墙广告等等。
图1 发布包
二、jar包和aar包
SDK开发目标是为了提供开发包给第三方app的开发者,常见情况下,提供jar包或者aar包。jar包可以包括代码、资源文件(包括图片、xml文件、动态链接库等,需要二次打包),jar由于不能直接引用xml页面布局,难以实现界面布局,必须用java实现所有界面,实现起来麻烦,一个简单的界面要写很多的代码,维护起来也比较麻烦,但是通过aapt编译xml页面布局,使其成为另外一种Android的布局系统更容易解析的一种格式(Compiled xml),在代码中通过反射使用XmlPullParser,inflate出xml中的布局,也可以得到页面。aar包可以包括许多资源(代码、资源文件、配置文件等等,既包含class又包含了res资源下的所有内容),使用常用的app开发方式进行开发,自动会把所有的资源文件、配置文件(甚至是app整体配置文件AndroidManifest.xml)全部引入aar包中,不需要开发人员进行其他工作,相对jar,aar的使用方便许多,但是由于许多开发者依然使用的IDE是Eclipse,在aar接入方面不便,jar接入使用依然较多,在google推荐的IDE Android Studio中,aar的打包和接入就十分方便。
图2 jar包的引入
图3 aar包的引入
三、sdk开发的原则
sdk编写的原则,可以总结为几点:
1.内容封闭,只开放少数接口,最大程度减少sdk接入方需要了解的细节。
2.包尽可能小,尽可能压缩图片和动态链接库
3.统一接口调用方式,比如:ComPayPlatform.init(context,key); ComPayPlatform.pay(context,key,listener);
四、aar包开发
AS(Android Studio)中Module以库的形式使用,编译后自动生成aar文件,文件包括了Module库的所有有用内容(AndroidMenifest.xml,res文件夹中的所有资源文件,libs中引用的jar和.so的动态链接库,java代码等)。Module可以依次依赖,Module1引用Module2,Module2引用Module3,但是Module1无法直接使用Module3中的内容,Module也可以进行平行依赖,Module1即引用了Module2,也引用了Module3,在sdk开发中也需要注意,尽快不要使用Module依赖,多Module无法打包为一个aar,也要避免依次依赖造成的可能bug。
sdk开发中res文件夹中,资源和id的前缀问题。sdk开发中,res文件夹中的所有资源(图片名,xml视图名,values文件夹下的定义属性名等)建议都加上前缀(比如我加上公司的前缀 bs_***.png),是因为作为aar包被其他app引用后,资源名使用时可能与原程序冲突,原程序名为back.png的图片与sdk中back.png的图片冲突造成bug.
图4 前缀
sdk结果的出口,一般使用一个接口,在接口的回调函数返回结果。
/**
*
@author
张新锦
*/
public interface
OnPayResultListener {
public void
OnSuccess(String platFormNo);
public void
OnFail();
}
ComPayPlatform.
pay
(MainActivity.
this
,
"001"
,
fixPlatFormNo
,
"1000001"
,
"00101"
,
"222222"
,
"测试111"
, 0.01,
getCurrentTimeFormatyyyyMMdd
(),
getCurrentTimeFormathhmmss
(),
"remark1"
,
""
,
new
OnPayResultListener() {
@Override
public void
OnSuccess(String platFormNo) {
textView
.append(
"支付成功 , 返回数据: platformNo :"
+platFormNo+
"\n"
);
}
@Override
public void
OnFail() {
textView
.append(
"支付失败\n"
);
}
});
五、发布前的工作
5.1 sdk的代码混淆
sdk代码混淆与app不同的地方,除了普通app的混淆机制外,sdk特别注意开放接口和内部引用包的不混淆。
5.2 sdk包内容的发布
编写sdk代码、并且测试通过后,sdk开发的工作才进行一半,另外一半的工作在写出demo程序和接入文档。sdk的最终目的是为了其他开发者接入,不止在编码是注意接入的代码要简洁、明了,更要在接入文档中详细写出方法、参数的意义,最好直接在文档中给出事例。文档最好也写清楚开发环境要求,jdk要求和引用aar文件的详解。demo程序也十分重要,demo程序简洁,注释详细,使用sdk接口的代码进行详细注释,让接入sdk的开发人员明白每段代码的含义。
图5 文档
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/2023面试高手/article/detail/250461
推荐阅读
article
20240116使用
Firefly
的AIO-
3399J
的预编译的
Android10
固件确认RT564...
android
dts配置_「7.1」[RK3399][Android7.1] 移植笔记 --- 音频Codec RT5...
赞
踩
article
Android
APP
开发
入门教程
_安卓app
开发
教程...
这篇文章主要介绍了
Android
APP
开发
入门教程
,从SDK下载、
开发
环境搭建、代码编写、
APP
打包等步骤一一讲解,非...
赞
踩
article
Android
安卓
开发
入门教程,...
梦想绘图控件
开发
教程V6.0版 11、 环境搭建: 31.1、 下载
Android
SDK 31.2、 下载 eclip...
赞
踩
article
android studio安装中出现Failed to
install
Intel
HAXM
错误的...
1_
unable
to
install
intel
庐
haxm
unknown
error please file a ...
赞
踩
article
Android
S
t
udio安装过程中
HAXM
出现错误安装失败的解决办法_
haxm
ins
t
all
a...
安装
HAXM
出现的错误时假如处理器是AMD的话我们就安装
Android
Emula
t
or Hypervisor Driv...
赞
踩
article
Android
Studio
模拟器的加速器
Intel
HAXM
的
安装
及
安装
失败的原因_
haxm
...
本人使用的CPU是AMD的,在
Android
开发环境的配置时,遇到以下问题:
Intel
HAXM
安装
失败的原因有以下几...
赞
踩
article
Android
studio 虚拟机问题总结二_
intel
庐
haxm
install
ation f...
Android
Studio中 HAXM安装失败的问题(Intel HAXM
install
ation failed. ...
赞
踩
article
Intel®
HAXM
installa
tion failed.
android
studio
安装失...
Intel®
HAXM
installa
tion failed. 解决
android
studio
安装失败问题_inte...
赞
踩
article
Android Studio 安装虚拟机报错 Intel®
HAXM
install
ation fa...
Android Studio 安装虚拟机时报错Intel®
HAXM
install
ation
failed
. To i...
赞
踩
article
Android
Studio
中
HAXM
安装失败的问题(
Intel
HAXM
install
atio...
日志就是报错信息上面的那一句,我这里日志说的是:To un
install
the current version: 7....
赞
踩
article
Android
Studio
入门级
教程
(
详细
)【
小白必
看】[
通俗易懂
]...
有了Java阶段的学习,这一阶段建议以视频学习为主辅以图书查漏补缺。遇到问题可以去百度,入门的问题一般会有很多人遇到,并...
赞
踩
article
Android
Studio
启动
虚拟机
时一直提示安装
Haxm
_
install
haxm
...
Android
Studio
启动
虚拟机
时一直提示安装
Haxm
_
install
haxm
install
haxm
...
赞
踩
article
Android
Studio
中
启动
模拟器
时提示
HAXM
错误
的解决方法...
Android
Studio
中
启动
模拟器
时,会提示
HAXM
错误
,如图1所示。图1 提示
HAXM
错误
以上
错误
的提示信息是需...
赞
踩
article
Android
Studio虚拟机配置出现
Intel
®
HAXM
installation
fail...
Intel
®
HAXM
installation
failed
. To install
Intel
®
HAXM
foll...
赞
踩
article
Android
Studio中
HAXM
安装失败的问题(
Intel
HAXM
install
atio...
Android
Studio:
Intel
HAXM
install
ation
failed
. To
install
Int...
赞
踩
article
【Android】
Intel
HAXM
installation
failed
!_
intel
庐 ha...
4.勾选Windows虚拟机监控程序平台。5.接下来重启电脑即可正常打开虚拟机了。3.点击启用或关闭Windows功能。...
赞
踩
article
Android
ORC文字
识别
之
识别
身份证
号等(附源码)_
android
ocr
身份证
...
项目地址https://github.com/979451341/OrcTest我们说说实现这个项目已实现的功能,能够截...
赞
踩
article
【
Unity
3D】
Unity
与
Android
交互_
unity
for
android
...
本文主要介绍
Unity
打包发布
Android
apk 流程、基于
Android
JavaObject(或 Andr...
赞
踩
article
uniapp 自定义基座调试(
Android
)
_
dcloud
_
control
.
xml
debug
...
1、
Android
Studio -》src-》main-》assets-》data-》
dcloud
_
control
.x...
赞
踩
article
Android
Studio
Iguana
| 2023.2.1 发布
,
快来看看
有
什么更新吧...
最后
,
下图是目前
Android
Gradle plugin 和
Android
Studio
版本兼容要求
,
还
有
An...
赞
踩
相关标签
杂质
android
windows
ndk
android开发
sdk
android studio
ide
虚拟机
安卓
开发语言
java
servlet
jar
android-studio