针对iOS和Android原生应用的A/B测试框架。
iOS
要求
安装
- 在Xcode中打开项目。
- 选择方案
Jails > iOS Device
然后Project > Build
。
- 选择方案
Jails > iPhone 5.0 Simulator
然后Project > Build
。
- 将构建好的
libJails.a
和Jails.h
从Release-universal or Debug-universal
复制到您的项目中。
- 将
-ObjC -all_load
添加到构建设置中的Other Linker Flags
。
示例代码
// AppDelegate.m
#import "Jails.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
:
[Jails breakWithConfURL:[NSURL URLWithString:@"http://your.domain.com/path/to/conf/jails.json"]];
:
}
Android
要求
安装
- 从Eclipse Marketplace安装AJDT。
- 通过
Select Project > Configure > Convert to AspectJ Project
将您的项目更改为AspectJ项目。
- 将
jails.jar
和aspectjrt.jar
(在Java构建路径的顺序和导出中检查AspectJ Runtime Library
)添加到您的项目中。
- 将
ActivityAspect.aj
添加到您的项目中。
示例代码
// MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
:
Jails.breakWithConfURL("http://your.domain.com/path/to/conf/jails.json");
:
}
Jails.json
{"ClassNameOfViewController": [
{ "ratio": 0 }, // A: 0%
{ "ratio": 100, // B: 100%
"branchName": "b",
"properties": [{
"name": "scrollView",
"frame": ["+0", "+44", "+0", "-44"]
},
{
"name": "view",
"createSubviews": [{
"class": "UIButton",
"background": "http://button/image.png",
"frame": ["0", "0", "320", "44"],
"action": "http://open/this/url/"
}]
}]
}
]}
键 |
required |
描述 |
ClassNameOfViewController |
o |
此类名可以更改。您可以指定UIViewController或UIView的子类。 |
ratio |
o |
A/B测试的百分比。 |
branchName |
- |
您可以使用此名称作为分析工具的参数。 |
properties |
- |
您可以使用指定的名称更改每个属性。 |
属性或createSubviews的键 |
required |
描述 |
name |
o |
属性变量的变量名 |
background |
- |
如果您指定为图像的URL,则绘制为模式瓦片或绘制颜色(如果指定HEX颜色代码)。 |
frame |
- |
iOS中UIView的frame。您可以指定相对位置。 |
text |
- |
对于UILabel:更改标签的文本。对于UIButton:更改按钮的标题。对于UIWebView:更改HTML内容。 |
action |
- |
对于UIWebView:您可以指定HTML内容的URL。对于UIButton:您可以指定调用openURL:的URL或在addTarget:action:forControlEvents中指定选择器。 |
hidden |
- |
更改UI元素的可见性。 |
createSubview |
- |
您可以使用此参数用于原始属性。因此,您无法构建树型层次结构。 |
工具