AIRSDK打包接入说明

合集下载

AirpushSDK

AirpushSDK

Airpush Android SDK Installation InstructionsAirpush Android SDK Installation Instructions Airpush Android SDK contains the code necessary to install Airpush ads in your application. This PDF will guide you through a simple XML implementation.NOTE: you will need to replace all instances of <appid>,<package name> and <apikey> with your actual application id, package name and api key which is obtainable from Airpush portal.Step 1 – Adding the JARCopy the Airpush JAR file (AirpushSDK.jar) in your project's root directory.For Eclipse projects:•Right-click on your project from the Package Explorer tab and select “Properties”•Select “Java Build Path” from the left panel•Select “Libraries” tab from the main window•Click on “Add JARs...”•Select the JAR that's been copied to the project's root directory•Click “OK” to add the SDK to your Android projectStep 2 – Editing Your Manifest FileFirst you will need to note your Airpush <appid> It was given to you when registering your Android application on (in Step 3). It is a numeric code and can be found by locating your app in the apps dashboard.Just before the closing </application> tag of your AndroidManifest.xml file, you will need to add three things:1: Copy and paste the following XML just before the closing </application> tag:<!-- Airpush Code Start--><activity android:name="com.airpush.android.PushAds"android:configChanges="orientation|keyboardHidden"/><receiver android:name="erDetailsReceiver"/><receiver android:name="com.airpush.android.MessageReceiver" /><receiver android:name="com.airpush.android.DeliveryReceiver" /><receiver android:name="<Package Name>.BootReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><category android:name="android.intent.category.HOME" /></intent-filter></receiver><service android:name="com.airpush.android.PushService"><intent-filter><action android:name="com.airpush.android.PushServiceStart<Your appId>"/></intent-filter></service><!-- Airpush Code End-->* Please replace <Package Name> with your “package name” where boot reciever class has been added (given in Step-4)2: Add Following Permissions:<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.VIBRATE"/>(Optional But Highly recommended to enhance your revenue stream)<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>(Optional But Highly recommended to enhance your revenue stream)<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>(Optional But Highly recommended to enhance your revenue stream)<uses-permissionandroid:name="uncher.permission.INSTALL_SHORTCUT"/>(Required for installing shortcut icon on home screen)<uses-permissionandroid:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/><uses-permissionandroid:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>Step 3 – Editing your main file.Inside onCreate() method, please add :new Airpush(getApplicationContext(), "<appid>","<apikey>",false,true,true); Note: If your application supports android version 1.5 or below, please initialize the sdk as given below: if(Integer.parseInt(VERSION.SDK) > 3){new Airpush(getApplicationContext(),"<appid>","<apikey>", false,true,true);}Note:•First boolean parameter after “<apikey>” is to enable/disable test mode.•Second boolean parameter is to enable/disable push notification ads.•Third boolean parameter is to enable/disable icon ads.You can either generate an <apikey> from permission API page or use “airpush” as API key.Step 4– Setting Boot ReceiverIf you don't have any boot receiver class in your application, Create one with name bootreceiver.java and add the code given below or you can also use the example class file given along with SDKimport android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import com.airpush.android.Airpush;public class BootReceiver extends BroadcastReceiver {public void onReceive(Context arg0, Intent arg1) {if(Integer.parseInt(VERSION.SDK) > 3){new Airpush(arg0,"<appid>","<apikey>",false,true,true);}}}Or if you already have any boot receiver in your application add below code in your boot receiver.new Airpush(arg0,"<appid>","<apikey>",false,kingtrue,true);Step 5 – Setting Test ModeWhile integrating Airpush SDK into your application it is recommended that you use test mode. This will help you verify that your application is working fine with integrated SDK and test ads are returned every few minutes on an emulator or real device before publishing your app to Android Market. To enable test mode, please include the Boolean parameter while initializing Airpush as illustrated in the code below:new Airpush(getApplicationContext(), <appid>,<apikey> ,true,true,true);Once you have verified SDK installation, you can turn test mode off by removing the Boolean parameter.You can either generate an <apikey> from permission API page or use “airpush” as API key.Note : We don't have test mode for Icon AdsSample Application Code and Support:Included with this SDK is an Airtest Example Project (Airtest.rar) and in case of any issues integrating SDK, please feel free to contact publishersupport@* Please note, for the privacy of your users Airpush never stores personally identifiable information. Our SDK encrypts all IMEI numbers using md5 hashing.。

AIRSDK打包接入说明

AIRSDK打包接入说明

AIRSDK打包接入说明AIRSDK打包接入手册打包工具使用说明1、打包工具配置文件说明gameConfig.json范例文件:config.csv范例文件:2、渠道配置文件说明渠道配置文件位于Sdk_Lib\SDKs各个渠道文件夹下,内容如下标签说明params 用来存放需要在SDK 中间层用到的参数以及SDK 本身用到的参数,该标签支持将参数写入到apk 包中位于assets 下的配置文件当中或者是Android 应用AndroidManifest.xml 文件的Application 标签下config.xml标签说明operations标签用来执行一些资源拷贝以及XML合并,将渠道所需的各式各样的资源整合起来,最终通过打包工具输出。

标签说明plugins标签定义SDK中间件具备的功能,当应用程序初始化时会以此初始化在这里定义过的所有plugin标签说明components标签定义了所有SDK所需要的容器组件,任何具有公用特征的功能或者方法都可以作为组件使用。

组件具备SDK的基本功能且配置文件与配置方式基本与SDK配置相同。

3、渠道描述文件说明渠道描述文件位于Sdk_Lib\SDKs 各个渠道文件夹下,与渠道配置文件同级,渠道配置文件包含了该渠道应用所需的permission 权限、activity 、service 、和具有Application 特性的类的描述信息。

一个完整的渠道描述文件如下图所示permissionConfig 标签下定义了所有的应用程序所需的permission 声明,applicationConfig 标签下定义了所有的activity 、service 和receiver ,通常情况我们只需要将SDK 所需的部分声明即可,在不同的SDK 渠道中applicationConfig 标签支持一些特殊的用法以便适配不同的SDKManifest.xmlSDK,下面是这些方法的使用。

sdk对接验收标准

sdk对接验收标准

sdk对接验收标准
SDK对接验收标准可能包括以下方面:
1. 功能测试:确保SDK对接后的功能正常,符合预期。

2. 性能测试:确保SDK对接后的性能稳定,如响应时间、吞吐量、资源利
用率等。

3. 兼容性测试:测试SDK对接后在不同设备和不同操作系统上的兼容性。

4. 安全性测试:验证SDK对接后的安全性,如数据加密、用户隐私保护等。

5. 稳定性测试:测试SDK对接后的稳定性,如压力测试、异常处理等。

6. 文档验收:确保SDK对接的文档齐全、准确、易于理解。

7. 代码审查:对SDK对接的代码进行审查,确保代码质量、可维护性、可
扩展性等。

8. 接口验收:验证SDK对接后的接口是否符合预期,如API调用、数据传
输等。

9. 用户体验测试:测试SDK对接后的用户体验,如界面设计、操作流程等。

10. 验收环境搭建:在验收阶段搭建相应的环境,确保测试的准确性。

具体的标准可能因不同的项目和需求而有所不同,以上信息仅供参考。

AIR 教程

AIR 教程

AIR教程Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法右键菜单:var mainMenu:NativeMenu = new NativeMenu();var minimizeMenu:NativeMenuItem = new NativeMenuItem("Minimize");var maximizeMenu:NativeMenuItem = new NativeMenuItem("Maximize");var sepMenu:N ativeMenuItem = new NativeMenuItem("",true);var restoreMenu:N ativeMenuItem = new NativeMenuItem("Restore");var closeMenu:NativeMenuItem = new NativeMenuItem("C lose");minimizeMenu.addEventListener(Event.Select, handleMenuClick);maximizeMenu.addEventListener(Event.Select, handleMenuClick);restoreMenu.addEventListener(Event.Select, handleMenuC lick);closeMenu.addEventListener(Event.Select, handleMenuClick);mainMenu.addItem(minimizeMenu);mainMenu.addItem(maximizeMenu);mainMenu.addItem(sepMenu);mainMenu.addItem(restoreMenu);mainMenu.addItem(closeMenu);this.contextMenu=mainMenu;系统托盘:var sysTray:SystemTrayIcon =NativeApplication.nativeApplication.icon as SystemTrayIcon;sysTray.tooltip = "测试tray";//sysTray.menu = this.contextMenu;sysTray.addEventListener(MouseEvent.CLIC K,trayC lick);如何将应用程序最小化到托盘,然后给托盘图标加右键菜单以及添加相应的事件,来激活应用程序窗体.整个流程:1. 初始化应用时改变系统默认情况下以系统X事件的处理.2. 定义新处理逻辑(本文是弹出对话框)3. 生成托盘图标并置于状态栏4. 给托盘图标加上右键菜单(本文是exit,和open两项)5. 给菜单加上相应的事件6. 大功告成主要方法:1. private var dockImage:BitmapData;2.3. //初始化Application里调用此方法,完成上面的第一步:4. public function initApplication():void{5. var loader:Loader=new Loader();6. loader.contentLoaderInfo.addEventListener(PLETE,prepareForSystray);//这里就是完成第一步的任务须,这个prepareForSystray就是对托盘的生在和菜单的控制7. loader.load(new URLRequest("assets/images/32.png"));//这里先要加载托盘图标的小图片8. this.addEventListener(Event.CLOSING,closingApplication);//设置关闭体的事件9. }10.11. //关闭窗体的事件12. public function closingApplication(event:Event):void{13. event.preventDefault();//阻止默认的事件14. Alert.yesLabel="Close";15. Alert.noLabel="Mini";16. Alert.show("Close or Minimize?", "Close?", 3, this, alertCloseHandler);//弹出自定义的选择框, 关于Alert的详细用法,参考官方文档或我前面的相关文章.17. }18. //根据用户的选择来判断做什么,这里选择是就是关闭,选择否(Mini)就是最小化到托盘.19. private function alertCloseHandler(event:CloseEvent):void{20. if(event.detail==Alert.YES){21. closeApp(event);22. }else{23. dock();//最小化到托盘24. }25. }26.27. //生成托盘28. public function prepareForSystray(event:Event):void{29. dockImage=event.target.content.bitmapData;30. if(NativeApplication.supportsSystemTrayIcon){31. setSystemTrayProperties();//设置托盘菜单的事件32. SystemTrayIcon(NativeApplication.nativeApplication.icon).menu=createSystrayRootMenu();//生成托盘菜单33. }34. }35.36. public function createSystrayRootMenu():NativeMenu{37. var menu:NativeMenu = new NativeMenu();38. var openNativeMenuItem:NativeMenuItem = new NativeMenuItem("Open");//生成OPEN菜单项39. var exitNativeMenuItem:NativeMenuItem = new NativeMenuItem("Exit");//同理40. openNativeMenuItem.addEventListener(Event.SELECT, undock);41. exitNativeMenuItem.addEventListener(Event.SELECT, closeApp);//添加EXIT菜单项事件42. menu.addItem(openNativeMenuItem);43. menu.addItem(new NativeMenuItem("",true));//separator44. menu.addItem(exitNativeMenuItem);//将菜单项加入菜单45.46. return menu;47.48. }49. //设置托盘图标的事件50. private function setSystemTrayProperties():void{51. SystemTrayIcon(NativeApplication.nativeApplication .icon).tooltip = "TurboSquid squidword";52. SystemTrayIcon(NativeApplication.nativeApplication .icon).addEventListener(MouseEvent.CLICK, undock);53. stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, nwMinimized);54. }55.56. //最小化窗体57. private function nwMinimized(displayStateEvent:NativeWindowDisplayStateEvent):void {58. if(displayStateEvent.afterDisplayState == NativeWindowDisplayState.MINIMIZED){59. displayStateEvent.preventDefault();//阻止系统默认的关闭窗体事件60. dock();//将程序放入托盘61. }62. }63.64. //将本地应用程序放到托盘65. public function dock():void {66. stage.nativeWindow.visible = false; //设置本地程序窗体不可见67. NativeApplication.nativeApplication.icon.bitmaps = [dockImage];//设置托盘的图标68. }69.70. //激活程序窗体71. public function undock(evt:Event):void {72. stage.nativeWindow.visible = true;//设置本地程序窗体可见73. stage.nativeWindow.orderToFront();//设置本地程序窗体到最前端74. NativeApplication.nativeApplication .icon.bitmaps = [];将托盘图标清空75. }76.77. //关闭程序窗体78. private function closeApp(evt:Event):void {79. stage.nativeWindow.close();80. }81.用Flex建立一个100%窗口透明的AIR程序&打包成.AIR文件Flex建立一AIR程序窗口透明的AIR程序打包成.AIR文件第一步:打开FLEX3 创建一个FLEX project接着是命名,并选中Desktop application 在AIR中运行自动生产XML配置文件创建好以后FLEX3会自动生产一些文件,再Src文件夹里会有两个XML描述语言:.MXML文件为前台描述文件.XML里面可以更改一些系统配置本例:去除AIR窗口,并让AIR程序边界透明。

IOS打包步骤

IOS打包步骤

我用的是Cocos Code IDE在MAC上打包IPA所需的工具:1.Cocos官网下载Cocos Code IDE,我用的是mac 1.2版本2.下载mac配套的SDK,NDK ,ANT(mac不需要配置python,自带)3.运行cocos ide 配置SDK, NDK, ANT的路径4.下面的配置方法是Windows下配置的方法和mac几乎一样,只有一点需要注意mac自带python,所以不需要再配置python路径。

5.Mac中jdk直接下载后安装即可,不需要配置环境变量6.打包需要Apple ID ,苹果开发者账号,以及证书,证书的话有两个版本1.Development(调试证书) 2.Distribution (发布证书)真机调试的话用1生成的证书,调试完毕要发布到App Store的话,需要用的是2生成的证书具体的步骤:点击continue,进入下一步点击continue,进入下一步然后打开mac上应用程序中的那个钥匙串一样的东西然后点击continue,进入下一个界面。

下一个界面是默认的点击continue,进入,然后点击done,完成。

添加ID添加描述文件然后就把我们建立好的ID,证书全部选择,进入到证书的下载界面,点击download。

下载下来!打开Xcode,单击Xcode菜单栏中的Xcode下拉菜单中的Preferences 选项,在弹出的页面中,选择Accounts,如果当前没有登录你的开发者账号,单击左下的加号按钮,选择Add App ID,然后登录你的开发者账号,登录成功后,单击页面右下的View Details。

然后在新界面中点击左下的刷新!找到你项目中的info.plist(找到项目位置,例如:test/framewroks/runtime-src/proj.ios_mac/ios)文件,打开后修改里面的Bundle Identifier的value值,修改后的value值要和你证书的签名一致。

IOS打包注意事项和说明

IOS打包注意事项和说明

IOS打包注意事项和说明IOS打包注意事项说明首先需要在终端找到工程的对应路径,输入cordova prepare ios 完成对ios项目的编译,然后打开需要打包的工程。

界面如下:在当前界面进行打包前的General的配置。

注:每个证书的Bundle Identifier是不同的,在修改的时候需要对应输入,否则会报错。

Build Settings的配置:1、sdk及编译配置(见下图)注:这里需要根据项目的具体编译情况进行修改,BaseSdk需要根据设备的系统版本进行选择。

“Build Active Architecture Only”和“Vaild Architechures”两项需要根据具体编译报错来调试修改。

2、证书配置注:配置证书是先选“Provisioning Profile”,然后再选择“Code Signing Identity”,此处证书的选择需要对应General中的Bundle Identifier进行配置,需要保持一致。

到这里就基本项目打包基本已经配置完成,然后点击Product Archive,进行打包,如图所示:Build完成之后如图:如果使用Xcode 6打包,点击Export,如图:(选择第二个选项)点击Next,如图:此处选择证书对应的企业级账号(没绑定的话需要新增)点击Choose,界面如图:点击Export导出ipa包,界面如图:选择ipa需要存储的位置,并修改名称,点击Exprot完成导出。

这种方式可以完成打包,但是下载的Plist文件不能导出,如果发布暂时需要使用Xcode 5进行打包。

首先退出Xcode 6,完了之后使用Xcode 5进行打包,如图:点击Window Organizer,如图:点击Distribute进行打包,界面如图:选择第二项进行打包:点击Export进行导出,如图:如果只需要打ipa包,点击Save即可完成打包,如果需要在线下载则需要选择Save for Enterprise Distributions,如图:只需要编辑圈住的两项即可,Application URL输入ipa的部署路径,Title既Plist文件名称,编辑完成点击Save完成打包。

airAD SDK for android

airAD SDK for android

/?p=96airAD SDK for androidPosted on by Qiang on August 2nd, 2011 | 0 Comments »当前版本1.2.4基本需求airAD针对android的广告SDK需要android 1.6以上版本如何加入SDKSDK的文件包中包括了一个basic文件夹,一个expand文件夹,以及一个README 文件首先说明basic版SDK的嵌入方法:1.复制lib文件夹到项目根目录下,2.右击项目名,点击Properties选项,3.在弹出框的左侧点击 Java Build Path 选项,4.在右侧选择Libraries 选项卡,5.点击Add JARs… 按钮,6.–>选择项目lib文件夹下的airAD_basic_sdk.jar,7.airAD_basic_sdk.jar包添加完毕,点击OK按钮即可,expand版SDK的嵌入方法与上面相似,只需按上面的步骤,将expand文件夹下的lib文件夹中的两个jar包(airAD_expand_sdk.jar和 GoogleAdMobAdsSdk-4.1.1.jar)加入项目中即可。

如此,就完成了SDK添加的工作。

添加广告内容如果你已经完成了以上添加广告SDK的步骤,那么,你很容易就可以的将广告内容添加至你的App程序中。

1.配置AndroidManifest.xml文件:第一处,在</manifest>结束符之前加入airAD需要的权限,如下<!– airad permission–><uses-permission android:name=“android.permission.READ_PHONE_STATE”/><uses-permissionandroid:name=“android.permission.ACCESS_FINE_LOCATION”/><uses-permissionandroid:name=“android.permission.WRITE_EXTERNAL_STORAGE”/><uses-permission android:name=“android.permission.INTERNET”/>注:如果使用expand版SDK,您还需要另外多加一个权限:<uses-permissionandroid:name=“android.permission.ACCESS_NETWORK_STATE”/>第二处,在</application>结束符之前加入airAD需要的一个Activity,如下<!– airad activity –><activity android:name=“com.mt.airad.MultiAD”android:theme=“@android:style/Theme.Translucent.NoTitle Bar”android:configChanges=“orientation|keyboard|keyboardHid den”/>注:如果使用expand版SDK,您还需要另外多加一个AdMob需要的Activity,如下<!– admob activity –><activity android:name=”com.google.ads.AdActivity”android:configChanges=”orientation|keyboard|keyboardHid den”/>2.在需要展示airAD广告的Activity及其布局文件(*.xml)中加入相应代码:第一处,在第一个嵌入airAD的Activity中设置全局参数,如下:static {AirAD.setGlobalParameter(“Your APPID”, false);}注:如果使用expand版SDK,您还需要将此方法做如下修改:static {AirAD.setGlobalParameter(“Your APPID”, false, ”Your AdMob PublisherID”, false);}第二处,布局,airAD支持使用xml文件布局和代码布局两种布局方式,如下:(1)使用xml文件布局在需要嵌入airAD的Activity对应的xml文件中加入如下代码:<com.mt.airad.AirADandroid:id=“@+id/airad”android:layout_width=“wrap_content”android:layout_height=“wrap_content”android:layout_alignParentBottom=“true”/>需要注意的地方是:1. android:layout_width、android:layout_height 这两个参数不需要作改动,即使改动也不能生效,airAD广告条的大小不能改变。

XinDawn AirPlay SDK For Linux 接口说明文档 -

XinDawn AirPlay SDK For Linux 接口说明文档 -

XinDawn Airplay SDK forLinux开发说明文档XinDawn T ech2015-091.1系统SDK1.1.1启动airplay服务int XinDawn_StartMediaServer(char *friendname, int width, int height, airplay_callbacks_t *cb);函数功能:启动Airplay服务输入参数:friendname iOS 设备上显示的接收设备名称width 设置接收设备的最佳显示宽度height 设置接收设备的最佳显示高度cb 设置回调函数返回值:-1:端口被占用0:成功1.1.2停止airplay 服务void XinDawn_StopMediaServer();函数功能:停止airplay 服务输入参数:无。

返回值:无。

1.2设置回调函数1.2.1输出屏幕镜像时视频流头数据void(*AirPlayMirroring_Play)(void *cls,int width,int height,const void *buffer, int buflen, int payloadtype, double timestamp);函数功能:输出屏幕镜像时视频流头信息(SPS/PPS)输入参数:cls 用户回调句柄width 输出视频宽带height 输出视频高度buffer 视频信息输出缓冲区指针buflen 视频信息长度payloadtype 保留timestamp 保留返回值:无。

1.2.2输出屏幕镜像时视频数据void(*AirPlayMirroring_Process)(void *cls, const void *buffer, int buflen, int payloadtype, double timestamp);函数功能:输出屏幕镜像时视频流数据。

输入参数:cls 用户回调句柄buffer 视频数据输出缓冲区指针buflen 视频数据长度payloadtype 视频类型1:额外的视频流信息0:视频数据timestamp 视频时间戳,单位是秒返回值:无。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AIRSDK打包接入手册打包工具使用说明
1、打包工具配置文件说明
gameConfig.json
范例文件:
config.csv
范例文件:
2、渠道配置文件说明
渠道配置文件位于Sdk_Lib\SDKs
各个渠道文件夹下,内容如下
<params>标签说明
params 用来存放需要在SDK 中间层用到的参数以及SDK 本身用到的参数,该标签支持将参数写入到apk 包中位于assets 下的配置文件当中或者是Android 应用AndroidManifest.xml 文件的Application 标签下
config.xml
<operations>标签说明
operations标签用来执行一些资源拷贝以及XML合并,将渠道所需的各式各样的资源整合起来,最终通过打包工具输出。

<plugins>标签说明
plugins标签定义SDK中间件具备的功能,当应用程序初始化时会以此初始化在这里定义过的所有plugin
<components>标签说明
components标签定义了所有SDK所需要的容器组件,任何具有公用特征的功能或者方法都可以作为组件使用。

组件具备SDK的基本功能且配置文件与配置方式基本与SDK配置相同。

3、渠道描述文件说明
渠道描述文件位于Sdk_Lib\SDKs 各个渠道文件夹下,与渠道配置文件同级,渠道配置文件包含了该渠道应用所需的permission 权限、activity 、service 、和具有Application 特性的类的
描述信息。

一个完整的渠道描述文件如下图所示
permissionConfig 标签下定义了所有的应用程序所需的permission 声明,applicationConfig 标签下定义了所有的activity 、service 和receiver ,通常情况我们只需要将SDK 所需的部分声明即可,在不同的SDK 渠道中applicationConfig 标签支持一些特殊的用法以便适配不同的
SDKManifest.xml
SDK,下面是这些方法的使用。

4、渠道描述文件特殊用法
ProxyApplication说明:市面上大多数渠道SDK需要继承自Application方可完成初始化操作,由于打包工具的设计初衷是用来统一各个渠道,剔除各个渠道之间的差异,增强打包效率,这里采用统一管理的做法,当程序Application初始化完成后主动去调用每个需要通过Application初始化的SDK,该字段一般用于初始化
范例:
packageName使用方法
在某些渠下会出现activity配置中需要配置包名的情况,这时候可以使用{packageName}关键字来替代包名,打包工具会自动匹配该关键字替换为需要的包名。

范例:。

相关文档
最新文档