Inicializar o mPaaS exige modificar o objeto Application. Os passos variam conforme o uso do recurso de hotpatching.
Sem o recurso de hotpatching
Pré-requisitos: O aplicativo deve ter uma classe Application personalizada. Não é necessária configuração de ofuscação para este cenário.
Na classe Application, substitua onCreate() e chame MP.init():
@Override
public void onCreate() {
super.onCreate();
MP.init(
this,
MPInitParam.obtain().setCallback(new MPInitParam.MPCallback() {
@Override
public void onInit() {
Log.d("TAG", "mPaaS init finished");
}
})
);
}
Para integração com Kotlin, use a extensão mPaaS KTX. Para mais informações, consulte Extensão Kotlin do mPaaS.
Se você ainda usar o método de inicialização
QuinoxlessFramework, as chamadas não serão afetadas. Não é necessário alterar o código nem a lógica de negócios.
Não filtre processos antes de chamar MP.init. O código de inicialização deve executar no processo principal, no processo filho de ferramentas e no processo filho de push.
Com o recurso de hotpatching
Pré-requisitos: O projeto deve ter ProGuard ou R8 configurado. A anotação @Keep deve estar disponível.
-
Modifique o objeto Application para herdar de
QuinoxlessApplicationLike. Adicione a anotação@Keepà classe para evitar ofuscação.Este exemplo usa
MyApplicationcomo nome da classe:@Keep // Required: prevents ProGuard/R8 from obfuscating this class public class MyApplication extends QuinoxlessApplicationLike implements Application.ActivityLifecycleCallbacks { private static final String TAG = "MyApplication"; @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); // Required: mPaaS hooks into base context here Log.i(TAG, "attacheBaseContext"); } @Override public void onCreate() { super.onCreate(); Log.i(TAG, "onCreate"); registerActivityLifecycleCallbacks(this); } @Override public void onMPaaSFrameworkInitFinished() { // Called when the mPaaS framework finishes initialization LoggerFactory.getTraceLogger().info(TAG, getProcessName()); } @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { Log.i(TAG, "onActivityCreated"); } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { }} -
No arquivo
AndroidManifest.xml, defina o aplicativo como o objetoApplicationfornecido pelo mPaaS e registreMyApplicationna chavemeta-datachamadampaas.quinoxless.extern.application:<application android:name="com.alipay.mobile.framework.quinoxless.QuinoxlessApplication" > <meta-data android:name="mpaas.quinoxless.extern.application" android:value="com.mpaas.demo.MyApplication" /> </application> -
Importe o cliente HTTP Apache.
Os recursos de RPC e hotpatching exigem o cliente HTTP Apache. Adicione o seguinte código ao arquivo
AndroidManifest.xml. Para mais detalhes, consulte Usar o cliente HTTP Apache.<uses-library android:name="org.apache.http.legacy" android:required="false"/>