varCodecWarpper=Java.use("xx.CodecWarpper");CodecWarpper.encodeRequest.implementation =function(){var ret =this.encodeRequest.apply(this, arguments);//这里可以打印参数和返回值return ret;}
jstring, jbytearray 输出
function jstring2Str(jstring){var ret;Java.perform(function(){varString=Java.use("java.lang.String");
ret =Java.cast(jstring,String);});return ret;}
function jbyteArray2Array(jbyteArray){var ret;Java.perform(function(){var b =Java.use('[B');var buffer =Java.cast(jbyteArray, b);
ret =Java.array('byte', buffer);});return ret;}
打印堆栈
function showStacks(){Java.perform(function(){
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));});}
function ab2Hex(buffer){var arr =Array.prototype.map.call(newUint8Array(buffer), function (x){return('00'+ x.toString(16)).slice(-2)}).join(" ").toUpperCase();return"["+ arr +"]";}
function ab2Str(buffer){returnString.fromCharCode.apply(null,newUint8Array(buffer));}
获取类型
function getParamType(obj){return obj ==null?String(obj):Object.prototype.toString.call(obj).replace(/\[object\s+(\w+)\]/i,"$1")||"object";}