如何将Android应用程序制作为SDK

时间:2013-05-01 13:09:06

标签: android sdk

我有一个Android应用,我的客户端要求将其打包为SDK。 应使用类似SDK.open({parameters})的方法调用SDK,将打开一个新活动并允许自行关闭。

毋庸置疑,SDK应该被编译,只有它的界面才能为公众开放。

P.S - 该项目也使用NDK,如果有任何影响。

我不知道从哪里开始 - 将不胜感激:)

修改: 真正需要的是将现有的活动,包括所有资产,“res”文件夹,NDK代码等等 - 并打包成“可以合并到任何其他应用程序中并根据需要调用的东西”。在需要时,它应该能够关闭自己并返回到调用它的原始应用程序,释放它的所有内存。

由于

3 个答案:

答案 0 :(得分:1)

“SDK”代表软件开发工具包。我非常怀疑你的客户真正理解他所说的内容,因为APP无法“打包为SDK”。

修改

任何人都可以向您的导出活动发送意图,因此它主要是您需要的。设置exported="true",添加一些检查,以便在发送破坏的意图时您的应用不会崩溃,您应该做好准备。根据您的种子,您可能希望使用startActivityForResults()来处理。但这些都不会使您的应用SDK

答案 1 :(得分:0)

将其作为library project

您需要将其打包为独立的.jar文件。像this一样。 您可以将已编译的代码打包到.jar,并拥有库项目中的资源。对你们两个人来说,这是一个很好的解决方案。

.apk文件实际上是.zip文件,就像.jar文件一样,因此您可以尝试使用打包的.apk中的资源。

答案 2 :(得分:0)

过去,我已经在同一个库中构建了应用程序。您可以在库中运行Activitys以及您可能需要的任何内容,并将其挂钩到其他应用程序中。例如,如果你看this appthis app,它们看起来几乎相同,但是因为我使用了一个库。要创建应用程序的新版本,我只需要一个启动库的活动。要自定义应用程序,我在应用程序中有一类静态,我使用初始化应用程序的单个页面进行设置:

import com.mylibrarypackage.SplashScreen;
import com.mylibrarypackage.util.Constants;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;

public class NCC extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Unique FacebookId
        Constants.facebookId = "xxx";

        //Unique Twitter Keys
        Constants.consumerKey = "xxx";
        Constants.consumerSecret = "xxx";

        //Flurry Key
        Constants.flurryKey ="xxx";

        //Font name
        Constants.fontName = "MuseoSans.ttf";
        Constants.boldfontName = "MuseoSans_500.ttf";



        Intent intent = new Intent(this, SplashScreen.class);
        startActivity(intent);
        finish();

        setContentView(R.layout.splashscreen);
    }
}

库是构建通用应用程序的一种非常好的方法。