// 呼び出し元アプリの Context _c があるものとする
String packageName
= "com.example.getviewtest"; // 呼び出し先 String className
= packageName
+ ".customView"; // ↑のクラス View view
= null; // ここに入る
try
{
// APKからクラスをぶんどるためにAPKのパスを特定
apkName = _c.getPackageManager().getApplicationInfo(packageName, 0).sourceDir;
}
{
ex.printStackTrace();
}
// クラスローダー取得
PathClassLoader myClassLoader
= new PathClassLoader
(apkName,
ClassLoader.
getSystemClassLoader());try
{
Class<?> clazz = Class.forName(className, true, myClassLoader); // ぶんどる
Constructor
<?> con
= clazz.
getConstructor(Context.
class); // コンストラクタの取得 Object obj
= con.
newInstance(_c.
createPackageContext(packageName,
Context.
CONTEXT_RESTRICTED)); // 他アプリのコンテキストを取得して,それをぶちこむ view
= (View)obj
; // いただきました}
{
ex.printStackTrace();
}
Ly8g5ZG844Gz5Ye644GX5YWD44Ki44OX44Oq44GuIENvbnRleHQgX2Mg44GM44GC44KL44KC44Gu44Go44GZ44KLCiAKU3RyaW5nIHBhY2thZ2VOYW1lID0gImNvbS5leGFtcGxlLmdldHZpZXd0ZXN0IjsgICAgIC8vIOWRvOOBs+WHuuOBl+WFiApTdHJpbmcgY2xhc3NOYW1lID0gcGFja2FnZU5hbWUgKyAiLmN1c3RvbVZpZXciOyAgICAgLy8g4oaR44Gu44Kv44Op44K5ClN0cmluZyBhcGtOYW1lID0gIiI7ClZpZXcgdmlldyA9IG51bGw7ICAgIC8vIOOBk+OBk+OBq+WFpeOCiwogCnRyeQp7CiAgICAvLyBBUEvjgYvjgonjgq/jg6njgrnjgpLjgbbjgpPjganjgovjgZ/jgoHjgatBUEvjga7jg5HjgrnjgpLnibnlrpoKICAgIGFwa05hbWUgPSBfYy5nZXRQYWNrYWdlTWFuYWdlcigpLmdldEFwcGxpY2F0aW9uSW5mbyhwYWNrYWdlTmFtZSwgMCkuc291cmNlRGlyOwp9CmNhdGNoIChOYW1lTm90Rm91bmRFeGNlcHRpb24gZXgpCnsKICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOwp9CiAKLy8g44Kv44Op44K544Ot44O844OA44O85Y+W5b6XClBhdGhDbGFzc0xvYWRlciBteUNsYXNzTG9hZGVyID0gbmV3IFBhdGhDbGFzc0xvYWRlcihhcGtOYW1lLCBDbGFzc0xvYWRlci5nZXRTeXN0ZW1DbGFzc0xvYWRlcigpKTsKdHJ5CnsKICAgIENsYXNzPD8+IGNsYXp6ID0gQ2xhc3MuZm9yTmFtZShjbGFzc05hbWUsIHRydWUsIG15Q2xhc3NMb2FkZXIpOyAgICAgICAgIC8vIOOBtuOCk+OBqeOCiwogICAgQ29uc3RydWN0b3I8Pz4gY29uID0gY2xhenouZ2V0Q29uc3RydWN0b3IoQ29udGV4dC5jbGFzcyk7ICAgICAgICAgICAgICAgLy8g44Kz44Oz44K544OI44Op44Kv44K/44Gu5Y+W5b6XCiAgICBPYmplY3Qgb2JqID0gY29uLm5ld0luc3RhbmNlKF9jLmNyZWF0ZVBhY2thZ2VDb250ZXh0KHBhY2thZ2VOYW1lLCBDb250ZXh0LkNPTlRFWFRfUkVTVFJJQ1RFRCkpOyAgICAvLyDku5bjgqLjg5fjg6rjga7jgrPjg7Pjg4bjgq3jgrnjg4jjgpLlj5blvpfjgZfjgabvvIzjgZ3jgozjgpLjgbbjgaHjgZPjgoAKICAgIHZpZXcgPSAoVmlldylvYmo7ICAgICAgICAgICAvLyDjgYTjgZ/jgaDjgY3jgb7jgZfjgZ8KfQpjYXRjaCAoRXhjZXB0aW9uIGV4KQp7CiAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKfQ==