Android打包SDK供第三方调用
来源:互联网 发布:一洋电商,知乎 编辑:程序博客网 时间:2024/04/29 18:09
创建库工程
新建一个android工程,并创建一个LibActivity
LibActivity代码如下:
- </pre><pre name="code" class="java">package test.lib.activity;
- import com.example.libproject.R;
- import android.app.Activity;
- import android.os.Bundle;
- public class LibActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- setContentView(R.layout.lib);
- super.onCreate(savedInstanceState);
- }
- }
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="60dip"
- android:layout_centerInParent="true"
- android:textSize="20sp"
- android:textColor="#868"
- android:gravity="center"
- android:textStyle="bold"
- android:text="这是LibProject中的Layout"/>
- </RelativeLayout>
目前已经生成一个简单的Android工程,但我们需要的是一个LibProject,所以需要通过在项目上右键选择Properties(Alt+Enter)设置一下该项目是一个library项目
关于资源文件不能打包的问题
因为资源文件被打到jar里是不能被程序找到的,而且在把源码打成jar包时,调用R文件得到的id,如R.layout.lib,这个id将会以一个固定的值被嵌入代码中。所以别的工程引用我们的jar的时候会出现资源找不到的情况(即使你把资源文件copy到工程res目录)。
解决办法:新建一个类,名为Res,代码如下:
- <pre name="code" class="java">package test.lib.activity.lib;
- import com.example.libproject.R;
- public class Res {
- public static final class layout {
- public static int lib(){
- return R.layout.lib;
- }
- }
- }
修改LibActivity中通过R文件获取资源文件ID的地方为Res类中的方法,修改后代码如下:
- package test.lib.activity;
- import android.app.Activity;
- import android.os.Bundle;
- public class LibActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- //修改
- setContentView(Res.layout.lib());
- super.onCreate(savedInstanceState);
- }
- }
把源码打成jar包
在工程的src目录上右键选择Export——Java——JAR file
注意:在打包时,Res类不需要打到jar包里,这里是把Res类放在test.lib.activity.lib目录下,所以打包时把test.lib.activity.lib包前面的勾去掉
在JAR file选项设置一下jar文件存放路径,点击finish,最后可以在指定的目录下找到自己生成的jar文件
最后把jar包放到LibProject的res/libs目录下,然后把除了Res类的其它类文件都删除(这步可选,如果你不想把你的源码公开的话,或者出于安全考虑)
第三方应用调用SDK
第三方应用调用你的SDK时,只需要把你的LibProject导入到自己的工作空间,并引用你的LibProject,然后在清单文件配置相关的组件和权限即可。
引用LibProject
调用代码:
- package test.lib;
- import test.lib.activity.LibActivity;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import com.example.libtest.R;
- public class TestActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- setContentView(R.layout.test);
- super.onCreate(savedInstanceState);
- }
- public void click(View view) {
- //点击按钮跳转到LibProject中的LibActivity
- startActivity(new Intent(this, LibActivity.class));
- }
- }
效果图:
0 0
- Android打包SDK供第三方调用
- Android 打包Activity 供第三方调用
- Android中SDK供第三方调用实现详解
- Android 将Activity及其他类打包成jar包供第三方调用
- android 将android项目打包成sdk形式给第三方公司调用
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- 【Android】将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- div居中问题
- opencv 机器学习中模型存储问题
- 自定义behavior实现UC首页
- 签到日历——待续
- Hbase代码优化总结
- Android打包SDK供第三方调用
- 开发网站合集
- Java Web 程序员的职业进阶之路
- Oracle 游标(显式)使用
- Android自定义view制作lol手游技能板
- html5数据库增删改查
- 图解HTTP笔记之第五章:代理、网关,隧道
- Android App专项测试-压力测试
- 个人笔记(学习C的思考)