对于网络应用程序,通常使用Google网站优化器等工具进行分割测试以最大化其效果。其中最令人印象深刻的例子可能是谷歌公司如何分割测试了数十种蓝色色调,以找到最合适的一种。
在开发Android应用程序时,是否有最佳实践可供遵循进行A/B测试或多元测试?
对于网络应用程序,通常使用Google网站优化器等工具进行分割测试以最大化其效果。其中最令人印象深刻的例子可能是谷歌公司如何分割测试了数十种蓝色色调,以找到最合适的一种。
在开发Android应用程序时,是否有最佳实践可供遵循进行A/B测试或多元测试?
我先来到这里,然后继续查看结果,在这个优雅的答案中找到了所需内容。(Vincent Tsao on 12 May 11)
private static final boolean isA = UUID.randomUUID().getLeastSignificantBits() % 2 == 0;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if(isA){
setContentView(R.layout.mainA);
MyApp.getInstance().tracker().trackPageView("/AUser");
}else{
setContentView(R.layout.mainB);
MyApp.getInstance().tracker().trackPageView("/BUser");
}
...
}
我唯一的想法是保存选择,以便每次返回时都保持相同的布局。
我刚在考虑这个问题(所以才会通过谷歌搜索来到这里)。我的搜索没有得到任何框架。
如果你在启动之前知道想要测试什么,那就很简单(理论上)。启动时向服务器发送请求,询问应用程序是否应该显示A或B(并在发送结果时附带用户所在的队列信息)。
更有可能的情况是,应用已经发布了一周,现在你想开始测试变化。你可以上传一个新版本,这不是一个糟糕的想法。但是,如果你不想限制自己只针对更新应用程序的人群,似乎你可以从网络下载类并动态加载它们:
http://developer.android.com/reference/dalvik/system/DexFile.html http://developer.android.com/reference/dalvik/system/DexClassLoader.html
当然,您需要知道如何使用您下载的类。我猜测您的应用程序会联网更新,然后下载一个dex文件和一个描述文件,说明应该替换哪个类。
我自己没有尝试过这个。无论您如何处理,我都有一种感觉这不会很简单。