翰林优商.apk(点击下载) / DexClassLoaderProviderService.java


package com.tencent.smtt.export.external;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import java.io.File;
import java.util.ArrayList;

public class DexClassLoaderProviderService extends Service {
    private static final String LOGTAG = "dexloader";

    public IBinder onBind(Intent intent) {
        return null;
    }

    public void onCreate() {
        super.onCreate();
        Log.d(LOGTAG, "DexClassLoaderProviderService -- onCreate()");
        DexClassLoaderProvider.setForceLoadDexFlag(true, this);
    }

    public void onDestroy() {
        Log.d(LOGTAG, "DexClassLoaderProviderService -- onDestroy()");
        System.exit(0);
    }

    public int onStartCommand(Intent intent, int i, int i2) {
        Log.d(LOGTAG, "DexClassLoaderProviderService -- onStartCommand(" + intent + ")");
        if (intent == null) {
            return 1;
        }
        try {
            ArrayList<String> stringArrayListExtra = intent.getStringArrayListExtra("dex2oat");
            if (stringArrayListExtra == null) {
                return 1;
            }
            String str = stringArrayListExtra.get(1);
            String str2 = stringArrayListExtra.get(2);
            String str3 = stringArrayListExtra.get(3);
            Log.d(LOGTAG, "DexClassLoaderProviderService -- onStartCommand(" + stringArrayListExtra.get(0) + ")");
            ClassLoader classLoader = getClassLoader();
            File file = new File(str2);
            if (!file.exists()) {
                file.mkdirs();
            }
            DexClassLoaderProvider.createDexClassLoader(str, str2, str3, classLoader, getApplicationContext());
            return 1;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}