我有一个Android应用,我的客户端要求将其打包为SDK。 应使用类似SDK.open({parameters})的方法调用SDK,将打开一个新活动并允许自行关闭。
毋庸置疑,SDK应该被编译,只有它的界面才能为公众开放。
P.S - 该项目也使用NDK,如果有任何影响。
我不知道从哪里开始 - 将不胜感激:)
修改: 真正需要的是将现有的活动,包括所有资产,“res”文件夹,NDK代码等等 - 并打包成“可以合并到任何其他应用程序中并根据需要调用的东西”。在需要时,它应该能够关闭自己并返回到调用它的原始应用程序,释放它的所有内存。
由于
答案 0 :(得分:1)
“SDK”代表软件开发工具包。我非常怀疑你的客户真正理解他所说的内容,因为APP无法“打包为SDK”。
修改强>
任何人都可以向您的导出活动发送意图,因此它主要是您需要的。设置exported="true"
,添加一些检查,以便在发送破坏的意图时您的应用不会崩溃,您应该做好准备。根据您的种子,您可能希望使用startActivityForResults()
来处理。但这些都不会使您的应用SDK
。
答案 1 :(得分:0)
将其作为library project。
您需要将其打包为独立的.jar文件。像this一样。 您可以将已编译的代码打包到.jar,并拥有库项目中的资源。对你们两个人来说,这是一个很好的解决方案。
.apk文件实际上是.zip文件,就像.jar文件一样,因此您可以尝试使用打包的.apk中的资源。
答案 2 :(得分:0)
过去,我已经在同一个库中构建了应用程序。您可以在库中运行Activitys
以及您可能需要的任何内容,并将其挂钩到其他应用程序中。例如,如果你看this app和this 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);
}
}
库是构建通用应用程序的一种非常好的方法。