Android中SDK供第三方调用实现详解
来源:互联网 发布:select js 选中value 编辑:程序博客网 时间:2024/05/16 11:24
关于SDK
软件开发工具包(Software Development Kit, SDK)。SDK一般封装了一些功能(常见的比如:账号管理、支付、推送、统计等等),并提供了相关编程接口让第三方调用,SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
SDK工程
首先我新建一个Android工程,并创建一个SDK类,该类提供两个方法:init用于初始化SDK,login是显示登录界面的方法。
现在我想把这两个接口提供给第三方调用。java代码可以打成jar,但资源文件,如layout、drawble、raw等等,不能直接打到jar里,否则找不到资源。一般资源文件是直接拷贝到第三方工程,或者提供一个库工程第三方引用库工程,或者资源放到assets目录下。
而且,在导出java代码的时候,不能把R.java导出到jar里面,资源id在第三方工程编译时才确定,在SDK工程里如果直接使用R.xxx.xxx(如R.layout.main),第三方工程运行时查找资源就会出错。所以这里资源的id需要动态加载。一般有两种解决方法:
1.通过Android SDK提供的方法获取资源id。Context.getResources().getIdentifier("资源名称", "资源类型", “包名”)方法获取资源id
2.通过java中的反射获取资源id。Class.forName("包名.R")得到R文件class对象,然后getField方法得到资源id。
这里使用的是第一种方法,我新建了一个Res类并提供了相关方法获取不同类型的资源的id。
SDK中的login方法会跳转到SDKActivity,SDKActivity在创建时调用setContentView方法设置布局,布局资源的id是通过Res.layout动态获取的。
public class SDKActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通过Res.layout获取布局界面的idsetContentView(Res.layout("activity_sdk"));}}
库工程
1.我这里再创建了一个Android工程,并且勾选了Is Library选项,表示这是一个库工程,并不能运行,只是供其它工程引用。
2.把SDK工程中的java源码导出为jar(选择src目录,右键Export,我这里导出为sdk.jar),一般这一步还会对非SDK接口代码做混淆,然后把jar放到库工程的libs目录。
3.把SDK工程res目录下资源拷贝到库工程res目录下。
库工程项目结构:
第三方应用调用SDK
第三方应用调用SDK时,只需要把库工程导入到自己的工作空间,并引用库工程,然后在清单文件配置相关的组件和权限即可。
1.我这里新建了一个Test工程,并引用库工程。
2.调用SDK相关接口,MainActivity的布局文件中有一个按钮,点击会调用toSDKActivity方法,调用SDK的login方法。
public class MainActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 初始化SDKSDK.init(this);}/** * 跳转到SDK的Activity * * @param button */public void toSDKActivity(View button){SDK.login();}}
3.在AndroidMenifest.xml配置SDKActivity。
点击按钮后跳转到SDKActivity
项目地址:https://coding.net/u/linchaolong/p/SDKDemo/git
0 0
- Android中SDK供第三方调用实现详解
- Android打包SDK供第三方调用
- python 接口实现 供第三方调用
- Android 打包Activity 供第三方调用
- Android 将Activity打成jar包供第三方调用
- Android 将Activity打成jar包供第三方调用
- Android 将Activity打成jar包供第三方调用
- Android 将Activity打成jar包供第三方调用
- Android中调用第三方实现美团城市选择
- 包装接口供第三方调用方案
- Unity5调用Android第三方sdk报错
- android studio导出aar,提供SDK给第三方调用
- Android中实现版本更新(一)使用第三方sdk更新
- 关于Android将Activity打成jar包供第三方调用的解决方案
- Android 将Activity及其他类打包成jar包供第三方调用
- 【转】Android将Activity打成jar包供第三方调用
- android app 接入第三方SDK接口层实现思考
- android调用第三方api实现用户数授权登录机制详解
- 观察者模式 详解
- 天购免费抢购,互联网新浪潮
- C语言str系列库函数
- c语言内存管理
- Java控制台输入几种方式的I/O性能
- Android中SDK供第三方调用实现详解
- ActionContext和ServletActionContext区别
- 注册(四)之删除绑定
- APK放到data/data/下面提示解析失败
- Android 中Makefile的详细分析
- ssh 链接linux中的mysql
- Eclipse 内容批量替换
- Oracle 字符串分割
- UML实践----用例图、顺序图、状态图、类图、包图、协作图