Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
来源:互联网 发布:手机qq软件 编辑:程序博客网 时间:2024/04/24 13:29
农民伯伯: http://over140.blog.51cto.com
截图: 成功截图:
public interface ITest {
String getMoney();
}
String getMoney();
}
public class TestBActivity extends Activity implements ITest {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public String getMoney() {
return "1";
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public String getMoney() {
return "1";
}
}
public class TestAActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String path = Environment.getExternalStorageDirectory() + "/";
String filename = "TestB.apk";
DexClassLoader classLoader = new DexClassLoader(path + filename, path,
null, getClassLoader());
try {
Class mLoadClass = classLoader.loadClass("com.nmbb.TestBActivity");
Constructor constructor = mLoadClass.getConstructor(new Class[] {});
Object TestBActivity = constructor.newInstance(new Object[] {});
Method getMoney = mLoadClass.getMethod("getMoney", null);
getMoney.setAccessible(true);
Object money = getMoney.invoke(TestBActivity, null);
Toast.makeText(this, money.toString(), Toast.LENGTH_LONG).show();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String path = Environment.getExternalStorageDirectory() + "/";
String filename = "TestB.apk";
DexClassLoader classLoader = new DexClassLoader(path + filename, path,
null, getClassLoader());
try {
Class mLoadClass = classLoader.loadClass("com.nmbb.TestBActivity");
Constructor constructor = mLoadClass.getConstructor(new Class[] {});
Object TestBActivity = constructor.newInstance(new Object[] {});
Method getMoney = mLoadClass.getMethod("getMoney", null);
getMoney.setAccessible(true);
Object money = getMoney.invoke(TestBActivity, null);
Toast.makeText(this, money.toString(), Toast.LENGTH_LONG).show();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- Android动态加载(上)——加载未安装APK中的类
- Android动态加载(上)——加载未安装APK中的类
- Android动态加载(上)——加载未安装APK中的类
- Android应用开发提高系列(5)——Android动态加载(下)——加载已安装APK中的类和资源
- Android应用开发提高系列(5)——Android动态加载(下)——加载已安装APK中的类和资源
- Android应用开发提高系列——Android动态加载(下)——加载已安装APK中的类和资源
- Android动态加载——加载未安装APK中的类&加载已安装APK中的类和资源
- Android动态加载(下)——加载已安装APK中的类和资源
- Android动态加载(下)——加载已安装APK中的类和资源
- 插件化开发系列之二—动态加载技术加载已安装和未安装的apk
- Android动态加载——加载已安装APK中的类
- 页面FLV视频播放问题
- java-基础
- 华为:给定一个数组input[],如果数组长度n为奇数,则将数组中最大的元素放到 output[]数组最中间的位置,如果数组长度n为偶数。。 .
- 函数名function是一个数据类型,可以赋值
- HP450安装WIN8和Ubuntu 13.10双系统
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
- JNI数据类型的详解
- 查看连接到SQL Server数据库的用户信息
- GDB中应该知道的几个调试方法
- 双连通分量
- 标准I/O库(对流的操作)
- Linux互斥锁的使用代码实现
- 创建文件夹问题
- Asp 导出Excel