第1页
JSPatch JSPatch (bang) 2016.6.24 (bang)
第2页
iOS
第3页
iOS
第4页
iOS http://cnbang.net
第5页
iOS
第6页
iOS
第7页
iOS
第8页
iOS
第9页
• • •
第11页
App bug
( -> -> -> ->
)
第12页
waxPatch
第13页
waxPatch
Block 64
lua
第15页
JavaScript
第16页
JavaScript
JavaScriptCore JS
第17页
JavaScript
JavaScriptCore JS
第18页
JavaScriptBridge
第19页
JavaScriptBridge
第20页
Rollout
第21页
UIView.alloc()
JavaScriptCore
: className “UIView” methodName “alloc” ObjC Runtime Call [UIView alloc]
第22页
UIView.alloc()
JavaScriptCore
: className “UIView” methodName “alloc” ObjC Runtime Call [UIView alloc]
第25页
OC UIView
JS UIView
UIView.alloc()
第26页
OC UIView
JS UIView
UIView.alloc()
• (NSObject 830 118 ) • (NSObject 1.3M, UIView 2M)
第27页
OC UIView
JS UIView
UIView.alloc()
• (NSObject 830 118 ) • (NSObject 1.3M, UIView 2M)
•
• JS
第28页
OC UIView
JS UIView
UIView.alloc()
• (NSObject 830 118 ) • (NSObject 1.3M, UIView 2M)
•
• JS
✕
第31页
UIView.alloc()
•
• __c()
Ruby/Lua
UIView.__c(“alloc”)()
第32页
UIView.alloc()
•
• __c()
Ruby/Lua
UIView.__c(“alloc”)()
UIView.alloc() UIView.__c(“alloc”)()
UIView OC
OC JS
第33页
UIView.alloc()
•
• __c()
Ruby/Lua
UIView.__c(“alloc”)()
UIView.alloc() UIView.__c(“alloc”)()
UIView OC
•
: •
↓99%
OC JS
第34页
• / OC • 64 • block • (C / Class / id* / struct) •C …… https://github.com/bang590/JSPatch/wiki
第38页
Keep it simple and tiny
第40页
• •
第41页
• •
https
• •
第42页
RSA
MD5
MD5
5 4
MD5
MD5
MD5
第43页
RSA
MD5
MD5
5 4
MD5
MD5
MD5
第44页
JPLoader
第46页
JSPatch
http://jspatch.com
第47页
JSPatch
第48页
JSPatch
…
APP
App CGI
DB
App
第49页
JSPatch
App
APP
{appKey}
…
{v:10}
json
{v:10}
App
第51页
JSPatch Convertor
第52页
•
• JSPatch • JSPatch
•
/
(JPLoader)
• JSPatch Convertor • Extensions
第53页
2500 APP
using.jspatch.org
第55页
JSPatch
React Native / Weex
• -> (
•(
•&
) )
JSPatch
• •
• OC
第56页
&
第57页
JSPatchX
第58页
JSPatchX
第59页
PlayGround
第60页
PlayGround
第62页
__c callSelector
JPForwardInvocation
/
JS
Class & Selector JS
第63页
__c callSelector
JPForwardInvocation
/
JS
Class & Selector JS
第64页
__c callSelector
JPForwardInvocation
/
JS
Class & Selector JS
第65页
• Property • JS Class • OC /
第66页
Dribbble demo
第67页
Dribbble demo