wiki地址:https://github.com/Tencent/mars/wiki

第一步:首先我们需要把项目下载下来,项目分成了几个部门,其中包括android,ios客户端和Service端的代码。

第二步:运行service端代码:

    cmd 进入到sample/Service目录下,然后执行 python start_server.py 。

    第一次运行需要下载很多配置文件,需要的时间比较久,执行完成后,会弹出两个界面。证明服务端已经可以运行了

第三步:将android项目导入as中。在wrapper模块中,我们需要将本地的id配置完成:

    wrapper模块/service/MarsServiceStub.class文件下

@Overridepublic String[] onNewDns(String host) {    return new String[]{            "xx.xx.98.xxx"    };}

    默认该方法返回的是null 。

第四步:就可以运行了。

    以上为demo的运行教程,下面是项目集成的教程。

-------------------------

独立运行模块:

第一步:在项目gradle中添加依赖

classpath "com.github.dcendents:android-maven-gradle-plugin:1.4.1"classpath 'com.google.protobuf:protobuf-gradle-plugin:0.7.6'classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"

和全局的配置参数

ext {    GROUP = 'com.tencent.mars.sample'    VERSION_NAME_PREFIX = '1.2.1'    VERSION_NAME_SUFFIX = '' // '-SNAPSHOT'    WRAPPER_VERSION_NAME_PREFIX = '1.1.8'    WRAPPER_VERSION_NAME_SUFFIX = '' // '-SNAPSHOT'    javaVersion = JavaVersion.VERSION_1_7    VERSION_NAME = "${VERSION_NAME_PREFIX}${VERSION_NAME_SUFFIX}"}

第二步:在app.gralde中添加mars依赖包

implementation 'com.tencent.mars:mars-core:1.2.1'implementation 'com.tencent.mars:mars-xlog:1.0.6'

第三步:将官方提供的demo中wrapper模块添加到自己的项目中,然后在gradle中添加引入

compile project(path: ':wrapper')

第四步:在Application中进行初始化工作

/** * Created by malei on 2018/4/13. */public class MyApplication extends Application {    private static final String TAG = "Mars.SampleApplication";    private static Context context;    public static AppLogic.AccountInfo accountInfo = new AppLogic.AccountInfo(            new Random(System.currentTimeMillis() / 1000).nextInt(), "anonymous");    public static volatile boolean hasSetUserName = false;    private static class SampleMarsServiceProfile extends DebugMarsServiceProfile {        @Override        public String longLinkHost() {            return "marsopen.cn";        }    }    @Override    public void onCreate() {        super.onCreate();        context = this;        System.loadLibrary("stlport_shared");        System.loadLibrary("marsxlog");        openXlog();        MarsServiceNative.setProfileFactory(new MarsServiceProfileFactory() {            @Override            public MarsServiceProfile createMarsServiceProfile() {                return new SampleMarsServiceProfile();            }        });        // NOTE: MarsServiceProxy is for client/caller        // Initialize MarsServiceProxy for local client, can be moved to other place        MarsServiceProxy.init(this, getMainLooper(), null);        MarsServiceProxy.inst.accountInfo = accountInfo;        // Auto bind all activity event//        ActivityEvent.bind(getApplicationContext());        Log.i(TAG, "application started");    }    @Override    public void onTerminate() {        Log.i(TAG, "application terminated");        super.onTerminate();        Log.appenderClose();    }    public static  void openXlog() {        int pid = android.os.Process.myPid();        String processName = null;        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        for (ActivityManager.RunningAppProcessInfo appProcess : am.getRunningAppProcesses()) {            if (appProcess.pid == pid) {                processName = appProcess.processName;                break;            }        }        if (processName == null) {            return;        }        final String SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();        final String logPath = SDCARD + "/marssample/log";        String logFileName = processName.indexOf(":") == -1 ? "MarsSample" : ("MarsSample_" + processName.substring(processName.indexOf(":") + 1));        if (BuildConfig.DEBUG) {            Xlog.appenderOpen(Xlog.LEVEL_VERBOSE, Xlog.AppednerModeAsync, "", logPath, logFileName, "");            Xlog.setConsoleLogOpen(true);        } else {            Xlog.appenderOpen(Xlog.LEVEL_INFO, Xlog.AppednerModeAsync, "", logPath, logFileName, "");            Xlog.setConsoleLogOpen(false);        }        Log.setLogImp(new Xlog());    }    public static Context getContext() {        return context;    }}

完毕!

更多相关文章

  1. 新建Android项目的时候,选择SDK的区别
  2. 在Eclipse中设置Android模拟器屏幕大小
  3. “亲子安全卫士”项目总结
  4. 最全面的Android(安卓)Studio使用教程(图文)
  5. Android杂谈--关于解析包时错误解决方案
  6. Android打包时我们如何选择平台(ABI)
  7. Android(安卓)Studio 运行java程序
  8. android studio *.jar 与 *.aar 的生成与*.aar导入项目方法
  9. android libs下的源码和文档配置

随机推荐

  1. android手势事件 快速移动 长按触摸屏 按
  2. 使用Xamarin在Visual Studio中开发Androi
  3. Android按时间先后顺序获取目录下文件列
  4. android WebView的网页上传文件
  5. JAVA String.format 方法使用介绍
  6. [转]android editText属性详细介绍
  7. ubuntu10.04下载android4.0的源码
  8. 进程方法Android进程与线程基本知识
  9. Android Wifi模块分析(四)
  10. Android 架构设计 本科《毕业论文》