fork download
  1. // 呼び出し元アプリの Context _c があるものとする
  2.  
  3. String packageName = "com.example.getviewtest"; // 呼び出し先
  4. String className = packageName + ".customView"; // ↑のクラス
  5. String apkName = "";
  6. View view = null; // ここに入る
  7.  
  8. try
  9. {
  10. // APKからクラスをぶんどるためにAPKのパスを特定
  11. apkName = _c.getPackageManager().getApplicationInfo(packageName, 0).sourceDir;
  12. }
  13. {
  14. ex.printStackTrace();
  15. }
  16.  
  17. // クラスローダー取得
  18. PathClassLoader myClassLoader = new PathClassLoader(apkName, ClassLoader.getSystemClassLoader());
  19. try
  20. {
  21. Class<?> clazz = Class.forName(className, true, myClassLoader); // ぶんどる
  22. Constructor<?> con = clazz.getConstructor(Context.class); // コンストラクタの取得
  23. Object obj = con.newInstance(_c.createPackageContext(packageName, Context.CONTEXT_RESTRICTED)); // 他アプリのコンテキストを取得して,それをぶちこむ
  24. view = (View)obj; // いただきました
  25. }
  26. catch (Exception ex)
  27. {
  28. ex.printStackTrace();
  29. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty