Xamarin转jar到dll常用参数
常用参数
/interface 例: /interface[@name=’AuthListener’]
/class 例: /class[@name=’MapView’]
/method 例: /method[@name=’setTileSource’]
/method(with parameters) 例: /method[@name=“onCreate“and count(parameter)=2 and parameter[1][@type=“com.my.CustomActivity“] and parameter[2][@type=“android.os.Bundle“]]”
/parameter 例: /parameter[@name=’p0′]
/parameter(with type) 例: parameter[1][@type=“com.my.CustomActivity“]
name=”managedType” – 托管类型,例: Java.Lang.Object
name=”obfuscated” – 类型模糊处理,例: true / false
name=”managedName” – 改变jar包中(类,方法)专制到dll的名称,例:MyCSharpName
name=”propertyName” – 改变jar包专制到dll的属性名称,例: MyPropertyName
name=”managedReturn” – 改变jar包专制到dll返回值的类型,例: Java.Lang.Object
name=”argsType” – 改变jar包专制到dll参数的类型,例: MyCustomErrorEventArgs
name=”sender” – 更改jar包专制都dll事件方法哪个参数为发送方参数 值: true / false
name=”eventName” – 改变jar包专制到dll事件的名称 例:MyEventName
删除类型(包括类,接口,方法,属性等)
<remove-node path=”/api/package[@name='{package_name}’]/class[@name='{name}’]” />
匹配删除某个类型(包名开始,包含某个包名)
<remove-node path=”/api/package[starts-with (@name, ‘com.example.internal’)]” />
<remove-node path=”/api/package[contains (@name, ‘com.example.internal’)]” />
修改类型访问类型
<attr path=”/api/package[@name='{package_name}’]/class[@name='{name}’]” name=”visibility”>public</attr>
模糊类型处理
<attr path=”/api/package[@name='{package_name}’]/class[@name='{name}’]” name=”obfuscated”>false</attr>
修改类型名称
<attr path=”/api/package[@name='{package_name}’]/class[@name='{name}’]” name=”managedName”>NewManagedName</attr>
添加类型
<add-node path=”/api/package[@name=’org.alljoyn.bus’]”>
<class abstract=”false” deprecated=”not deprecated” final=”false” name=”AuthListener.AuthRequest” static=”true” visibility=”public” extends=”java.lang.Object”>
<constructor deprecated=”not deprecated” final=”false” name=”AuthListener.AuthRequest” static=”false” type=”org.alljoyn.bus.AuthListener.AuthRequest” visibility=”public” />
<field name=”p0″ type=”org.alljoyn.bus.AuthListener.Credentials” />
</class>
</add-node>
官网参考资料
https://docs.microsoft.com/zh-cn/xamarin/android/platform/binding-java-library/
https://docs.microsoft.com/zh-CN/xamarin/android/platform/binding-java-library/binding-an-aar