dexclassloader 实现一种动态加载另一个apk中类的功能

场景:关于dexclassloader 实现一种动态加载另一个apk中类的功能解决办法

关于dexclassloader 实现一种动态加载另一个apk中类的功能
Java code
public class TActivity extends Activity {
    private TextView text;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        init();
    }
    private void init(){
        text=(TextView)findViewById(R.id.text);
        Intent intent=new Intent("com.xikang.yjc.text",null);
        PackageManager pm=getPackageManager();
        final List<ResolveInfo> plugins=pm.queryIntentActivities(intent, 0);
        System.out.println(plugins.size());
        ResolveInfo rinfo=plugins.get(0);
        ActivityInfo ainfo=rinfo.activityInfo;

        String packageName=ainfo.packageName;
        String dexPath=ainfo.applicationInfo.sourceDir;
        String dexOutputDir=getApplicationInfo().dataDir;
        String libPath=ainfo.applicationInfo.nativeLibraryDir;
        
        DexClassLoader cl=new DexClassLoader(dexPath, dexOutputDir, libPath, this.getClass().getClassLoader());
        try {
            Class<?> clazz=cl.loadClass(packageName+".AndroidTextActivity");
            Object obj=clazz.newInstance();
            Class[] param=new Class[2];
            param[0]=Integer.TYPE;
            param[1]=Integer.TYPE;
            Method action=clazz.getMethod("tt", param);
            Integer i=(Integer)action.invoke(obj, 12,34);
            text.setText(i);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }


Java code
package com.xikang.yjc.text;

import android.app.Activity;
import android.os.Bundle;

public class AndroidTextActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void tt(int a,int b){
        System.out.println(a+b);
    }
}


问题处于第一个类的Intent intent=new Intent("com.xikang.yjc.text",null);
final List<ResolveInfo> plugins=pm.queryIntentActivities(intent, 0);
plugins这个是空的 是我启动的这个"com.xikang.yjc.text"有问题吗? 这个是写调用apk的包名吗?


------解决方案--------------------
贴主,搞定了,咋不说下怎么做的???