MainApplication.java 2.37 KB
package com.metroapp;

import android.app.Application;
import android.content.Intent;
import android.os.Environment;
import android.webkit.WebView;

import com.elvishew.xlog.LogConfiguration;
import com.elvishew.xlog.XLog;
import com.elvishew.xlog.printer.Printer;
import com.elvishew.xlog.printer.file.FilePrinter;
import com.elvishew.xlog.printer.file.backup.NeverBackupStrategy;
import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.metroapp.rnpackage.BluetoothPackage;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
              new BluetoothPackage()
      );
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
    //启动保活service
    Intent intent = new Intent(this, GrayService.class);
    startService(intent);

    if(BuildConfig.DEBUG)
    {
      WebView.setWebContentsDebuggingEnabled(true);
    }

    LogConfiguration config = new LogConfiguration.Builder()
            .tag("METRO")                                         // 指定 TAG,默认为 "X-LOG"
            .build();


    Printer filePrinter = new FilePrinter                      // 打印日志到文件的打印器
            .Builder(Environment.getExternalStorageDirectory()+ "/1111MetroLog")                              // 指定保存日志文件的路径
            .fileNameGenerator(new DateFileNameGenerator())        // 指定日志文件名生成器,默认为 ChangelessFileNameGenerator("log")
            .backupStrategy(new NeverBackupStrategy())            // 指定日志文件备份策略,默认为 FileSizeBackupStrategy(1024 * 1024)
                    .build();
    XLog.init(config,filePrinter);
  }

}