android 如何拿到自己這個class的code

nemo_chao 2016-01-07 03:14:39
Dear all: 請問有哪個method可以拿到自己這個class的內容? 例如 我有個 class A , 在A裡頭 我想呼叫一個method拿到A自己的內容,傳出來或印出來。 我看到可用gson將物件轉成json再轉成string. 但這是拿A物件的目前的instance(可能還包含目前的變數值等等),對嗎? 我想要的是class A 本身內容。 請各位大俠幫幫忙! 多謝!
...全文
146 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nemo_chao 2016-01-12
  • 打赏
  • 举报
回复
沒人回 ... 再頂一下~~ 還是有甚麼方法做防竄改驗證呢?
nemo_chao 2016-01-08
  • 打赏
  • 举报
回复
謝謝wei220000 大. 不好意思我沒說清楚, 因為我的元件整個是 Class A + so 檔 來提供給我的客戶使用. Class A本身也會做一些功能. 所以叫用so 檔的是我的Class A(所以若按您上面的方式, so檔 會always檢查到Class A ), 用戶叫用的則是Class A的function. 在Class A 裏我會檢查 客戶的package name 來驗證用戶的使用權限. 但眾所周知, Java class 是容易被破解的, 所以我必須假設 Class A 可以被竄改成不檢查客戶package name.那整個元件就形同沒有保護了. 所以我才希望能將Class A 本身整個做個hash然後傳給so檔 檢查. 謝謝您!
wei220000 2016-01-07
  • 打赏
  • 举报
回复

Log.e("class a",lc.toString());
Log.e("class a class",ClassA.class.toString());
Log.e("class b",lb.toString());
Log.e("class a class",ClassB.class.toString());

直接可以ClassA.class.toString();也就说在so中获取调用java的类名,判断是不是自己包里面的。然后在类里面设置静态方法,判断方法的ID。
nemo_chao 2016-01-07
  • 打赏
  • 举报
回复
謝謝 wei220000 關注這問題. 補充說明一下, 其實我不一定需要 Class A 的 'source code' 編譯過的也行. 只要不是 instance 層級的內容, 而是拿到Class A的內容 . 我主要是想要做元件防竄改的功能. 因為我的元件分java這端(Class A)和 so檔的部分. 我想確定so 檔只能被Class A叫用, 而且Class A 的 code不能被竄改. 所以我要執行時拿到Class A 的 碼做為hash function 的input, 得到 的hash 值傳給我的so檔做比對. 以避免Class A 被改動. 期望大家提供建議
wei220000 2016-01-07
  • 打赏
  • 举报
回复
好奇,能实现吗?java文件最终会被编译,也就会乱。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧