前言
历时 2 个月的时间,终于完成了第一个作品,开发过程中产品的逻辑界面经历了多次改动,而代码保持了简洁清晰,真的学到蛮多东西.
目录
- sdk 开发的不同点
- 屏幕适配
- 混淆
- 自定义控件
- Gradle 设置
sdk 开发的不同点
sdk 和普通 app 有什么区别呢?
- sdk 是作为一个 module ,也就是程序库,它不能独立存在,需要其他app去调用.
- sdk 不能引入开源框架,比如图片处理框架 gilde , 网络框架 retrofit okhttp 等,因为引用该 sdk 的 app 也可能使用相同的开源库,这就会导致冲突.
- sdk 需要暴露回调接口给被调用者,比如这款游戏 sdk 中登陆状态,支付结果都会回调给游戏.
屏幕适配
- TextView 的字体大小以dp为单位,而非sp
- 具有虚拟按键的手机常常需要做处理,可以动态设置控件的位置来解决
- 使用今日头条屏幕适配方案
混淆
混淆在一定程度上降低代码的可读性,提高反编译的门槛,并且还可以压缩app的体积,所以每款应用发布前需要且必须对代码进行混淆。
sdk 的混淆又与应用程序不同,与应用程序想比除了常用的混淆配置外,不能混淆暴露的回调接口,还需要提供一份混淆配置文件,防止接入 sdk 后混淆关键代码导致的闪退崩溃。
自定义控件
游戏 sdk 中的自定义控件有:密码键盘,自定义 EditView,区号选择,悬浮球等,其中大多是难度较低的组合控件.
Gradle 设置
Gradle 作为 As 的项目构造工具,比 Ant 更容易添加外部依赖,也就是说当需要用到某个开源工具时,只需要在 build.gradle 文件里添加 "implementation","compile" 等语句就可以轻松引入.
Gradle 分为两个版本:Gradle 版本和 Gradle 插件版本,这两个在 As 中都是要配置的,智能的 IDEA 已经帮我们自动配置好了.
Gradle 插件版本配置位置
image.pngGradle 插件版本配置位置
image.png这俩版本可不能随便设置,它们的版本号之间有对应关系,详细配置请移步Android 官网
image.png在实际开发中,我发现一个有趣的现象,游戏 sdk 在 Eclipse 上的编译速度更快,但是也经常出现千奇百怪的错误.
网友评论