极光推送JPush的快速集成

首先到极光推送的官网上创建一个应用,填写对应的应用名和包名。

 

 

创建好之后下载Demo

 

提取Sdk里面的图片和xml等资源文件放自己项目的相应位置,然后要注意的是.so文件的放置位置:

在main目录下新建一个jniLibs文件夹,放在这个文件夹下。

 

 

 

提取Demo里面的AndroidManifest.xml文件,下面是提取的AndroidManifest.xml文件:

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3     package="com.coderwei.pushdemo"   
  4     android:versionCode="300"
  5     android:versionName="3.0.0"
  6     >
  7     <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="21" />
  8 
  9     <!-- Required -->
 10     <permission
 11         android:name="com.coderwei.pushdemo.permission.JPUSH_MESSAGE"
 12         android:protectionLevel="signature" />
 13   
 14     <!-- Required  一些系统要求的权限,如访问网络等-->
 15     <uses-permission android:name="com.coderwei.pushdemo.permission.JPUSH_MESSAGE" />
 16     <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
 17     <uses-permission android:name="android.permission.INTERNET" />
 18     <uses-permission android:name="android.permission.WAKE_LOCK" />
 19     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 20     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 21     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 22     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
 23     <uses-permission android:name="android.permission.VIBRATE" />
 24     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
 25     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 26     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 27 
 28     
 29     
 30     <!-- Optional for location -->
 31     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
 32     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 33     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
 34     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 35     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
 36     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
 37     <uses-permission android:name="android.permission.GET_TASKS" />
 38     
 39     <application
 40         android:icon="@drawable/ic_launcher"
 41         android:label="@string/app_name"
 42         android:name="com.example.jpushdemo.ExampleApplication">
 43 
 44         <!-- For test only 测试的主程序-->
 45         <activity
 46             android:name="com.example.jpushdemo.MainActivity"
 47             android:label="@string/app_name" >
 48             <intent-filter>
 49                 <action android:name="android.intent.action.MAIN" />
 50                 <category android:name="android.intent.category.LAUNCHER" />
 51             </intent-filter>
 52         </activity>
 53        <!-- For test only 测试高级功能 -->
 54        <activity android:name="com.example.jpushdemo.PushSetActivity" android:label="@string/app_name"></activity>
 55         <!-- For test only 测试设置 -->
 56        <activity android:name="com.example.jpushdemo.SettingActivity" android:label="@string/app_name"></activity>
 57         <!-- For test only 测试状态通知栏,需要打开的Activity -->
 58         <activity android:name="com.example.jpushdemo.TestActivity" android:exported="false">
 59             <intent-filter>
 60                 <action android:name="jpush.testAction" />
 61                 <category android:name="jpush.testCategory" />
 62             </intent-filter>
 63         </activity>
 64 
 65         <!-- Rich push 核心功能 since 2.0.6-->
 66         <activity
 67             android:name="cn.jpush.android.ui.PopWinActivity"
 68             android:theme="@style/MyDialogStyle"
 69             android:exported="false">
 70         </activity>
 71 
 72         <!-- Required SDK核心功能-->
 73         <activity
 74             android:name="cn.jpush.android.ui.PushActivity"
 75             android:configChanges="orientation|keyboardHidden"
 76             android:theme="@android:style/Theme.NoTitleBar"
 77             android:exported="false">
 78             <intent-filter>
 79                 <action android:name="cn.jpush.android.ui.PushActivity" />
 80                 <category android:name="android.intent.category.DEFAULT" />
 81                 <category android:name="com.coderwei.pushdemo" />
 82             </intent-filter>
 83         </activity>
 84         <!-- Required  SDK核心功能-->
 85         <service
 86             android:name="cn.jpush.android.service.DownloadService"
 87             android:enabled="true"
 88             android:exported="false" >
 89         </service>
 90 
 91         <!-- Required SDK 核心功能-->
 92         <!-- 可配置android:process参数将PushService放在其他进程中 -->
 93         <service
 94             android:name="cn.jpush.android.service.PushService"
 95             android:process=":mult">
 96             <intent-filter>
 97                 <action android:name="cn.jpush.android.intent.REGISTER" />
 98                 <action android:name="cn.jpush.android.intent.REPORT" />
 99                 <action android:name="cn.jpush.android.intent.PushService" />
100                 <action android:name="cn.jpush.android.intent.PUSH_TIME" />
101             </intent-filter>
102         </service>
103 
104         <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
105         <!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->
106         <service
107             android:name="cn.jpush.android.service.DaemonService"
108             android:enabled="true"
109             android:exported="true">
110             <intent-filter>
111                 <action android:name="cn.jpush.android.intent.DaemonService" />
112                 <category android:name="com.coderwei.pushdemo" />
113             </intent-filter>
114 
115         </service>
116 
117         <!-- Required SDK核心功能-->
118         <receiver
119             android:name="cn.jpush.android.service.PushReceiver"
120             android:enabled="true">
121             <intent-filter android:priority="1000">
122                 <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->
123                 <category android:name="com.coderwei.pushdemo" />
124             </intent-filter>
125             <intent-filter>
126                 <action android:name="android.intent.action.USER_PRESENT" />
127                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
128             </intent-filter>
129             <!-- Optional -->
130             <intent-filter>
131                 <action android:name="android.intent.action.PACKAGE_ADDED" />
132                 <action android:name="android.intent.action.PACKAGE_REMOVED" />
133 
134                 <data android:scheme="package" />
135             </intent-filter>
136         </receiver>
137 
138         <!-- Required SDK核心功能-->
139         <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>
140 
141         <!-- User defined.  For test only  用户自定义的广播接收器-->
142         <receiver
143             android:name="com.example.jpushdemo.MyReceiver"
144             android:exported="false"
145             android:enabled="true">
146             <intent-filter>
147                 <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!--Required  用户注册SDK的intent-->
148                 <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!--Required  用户接收SDK消息的intent-->
149                 <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!--Required  用户接收SDK通知栏信息的intent-->
150                 <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!--Required  用户打开自定义通知栏的intent-->
151                 <action android:name="cn.jpush.android.intent.CONNECTION" /><!-- 接收网络变化 连接/断开 since 1.6.3 -->
152                 <category android:name="com.coderwei.pushdemo" />
153             </intent-filter>
154         </receiver>
155 
156         <!-- Required  . Enable it you can get statistics data with channel -->
157         <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
158         <meta-data android:name="JPUSH_APPKEY" android:value="cf8a2ff321f582cbfcb55056" /> <!--  </>值来自开发者平台取得的AppKey-->
159 
160     </application>
161 </manifest>

 

下面是自己写的项目的AndroidManifest.xml文件:

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3     package="com.coderwei.pushdemo">
  4 
  5     <permission
  6         android:name="com.coderwei.pushdemo.permission.JPUSH_MESSAGE"
  7         android:protectionLevel="signature" />
  8 
  9     <!-- Required  一些系统要求的权限,如访问网络等-->
 10     <uses-permission android:name="com.coderwei.pushdemo.permission.JPUSH_MESSAGE" />
 11     <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
 12     <uses-permission android:name="android.permission.INTERNET" />
 13     <uses-permission android:name="android.permission.WAKE_LOCK" />
 14     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 15     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 16     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 17     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
 18     <uses-permission android:name="android.permission.VIBRATE" />
 19     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
 20     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 21     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 22 
 23 
 24 
 25     <!-- Optional for location -->
 26     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
 27     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 28     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
 29     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 30     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
 31     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
 32     <uses-permission android:name="android.permission.GET_TASKS" />
 33 
 34     <application
 35         android:allowBackup="true"
 36         android:icon="@mipmap/ic_launcher"
 37         android:label="@string/app_name"
 38         android:supportsRtl="true"
 39         android:name=".MyApplication"
 40         android:theme="@style/AppTheme">
 41         <activity android:name=".MainActivity">
 42             <intent-filter>
 43                 <action android:name="android.intent.action.MAIN" />
 44 
 45                 <category android:name="android.intent.category.LAUNCHER" />
 46             </intent-filter>
 47         </activity>
 48 
 49        <activity
 50             android:name="com.example.jpushdemo.MainActivity"
 51             android:label="@string/app_name" >
 52             <intent-filter>
 53                 <action android:name="android.intent.action.MAIN" />
 54                 <category android:name="android.intent.category.LAUNCHER" />
 55             </intent-filter>
 56         </activity>
 57         <!-- For test only 测试高级功能 -->
 58         <activity android:name="com.example.jpushdemo.PushSetActivity" android:label="@string/app_name"></activity>
 59         <!-- For test only 测试设置 -->
 60         <activity android:name="com.example.jpushdemo.SettingActivity" android:label="@string/app_name"></activity>
 61         <!-- For test only 测试状态通知栏,需要打开的Activity -->
 62         <activity android:name="com.example.jpushdemo.TestActivity" android:exported="false">
 63             <intent-filter>
 64                 <action android:name="jpush.testAction" />
 65                 <category android:name="jpush.testCategory" />
 66             </intent-filter>
 67         </activity>
 68 
 69         <!-- Rich push 核心功能 since 2.0.6-->
 70         <activity
 71             android:name="cn.jpush.android.ui.PopWinActivity"
 72             android:theme="@style/MyDialogStyle"
 73             android:exported="false">
 74         </activity>
 75 
 76         <!-- Required SDK核心功能-->
 77         <activity
 78             android:name="cn.jpush.android.ui.PushActivity"
 79             android:configChanges="orientation|keyboardHidden"
 80             android:theme="@android:style/Theme.NoTitleBar"
 81             android:exported="false">
 82             <intent-filter>
 83                 <action android:name="cn.jpush.android.ui.PushActivity" />
 84                 <category android:name="android.intent.category.DEFAULT" />
 85                 <category android:name="com.coderwei.pushdemo" />
 86             </intent-filter>
 87         </activity>
 88         <!-- Required  SDK核心功能-->
 89         <service
 90             android:name="cn.jpush.android.service.DownloadService"
 91             android:enabled="true"
 92             android:exported="false" >
 93         </service>
 94 
 95         <!-- Required SDK 核心功能-->
 96         <!-- 可配置android:process参数将PushService放在其他进程中 -->
 97         <service
 98             android:name="cn.jpush.android.service.PushService"
 99             android:process=":mult">
100             <intent-filter>
101                 <action android:name="cn.jpush.android.intent.REGISTER" />
102                 <action android:name="cn.jpush.android.intent.REPORT" />
103                 <action android:name="cn.jpush.android.intent.PushService" />
104                 <action android:name="cn.jpush.android.intent.PUSH_TIME" />
105             </intent-filter>
106         </service>
107 
108         <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
109         <!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->
110         <service
111             android:name="cn.jpush.android.service.DaemonService"
112             android:enabled="true"
113             android:exported="true">
114             <intent-filter>
115                 <action android:name="cn.jpush.android.intent.DaemonService" />
116                 <category android:name="com.coderwei.pushdemo" />
117             </intent-filter>
118 
119         </service>
120 
121         <!-- Required SDK核心功能-->
122         <receiver
123             android:name="cn.jpush.android.service.PushReceiver"
124             android:enabled="true">
125             <intent-filter android:priority="1000">
126                 <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->
127                 <category android:name="com.coderwei.pushdemo" />
128             </intent-filter>
129             <intent-filter>
130                 <action android:name="android.intent.action.USER_PRESENT" />
131                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
132             </intent-filter>
133             <!-- Optional -->
134             <intent-filter>
135                 <action android:name="android.intent.action.PACKAGE_ADDED" />
136                 <action android:name="android.intent.action.PACKAGE_REMOVED" />
137 
138                 <data android:scheme="package" />
139             </intent-filter>
140         </receiver>
141 
142         <!-- Required SDK核心功能-->
143         <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>
144 
145         <!-- User defined.  For test only  用户自定义的广播接收器-->
146         <receiver
147             android:name="PushReceiver"
148             android:exported="false"
149             android:enabled="true">
150             <intent-filter>
151                 <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!--Required  用户注册SDK的intent-->
152                 <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!--Required  用户接收SDK消息的intent-->
153                 <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!--Required  用户接收SDK通知栏信息的intent-->
154                 <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!--Required  用户打开自定义通知栏的intent-->
155                 <action android:name="cn.jpush.android.intent.CONNECTION" /><!-- 接收网络变化 连接/断开 since 1.6.3 -->
156                 <category android:name="com.coderwei.pushdemo" />
157             </intent-filter>
158         </receiver>
159 
160         <!-- Required  . Enable it you can get statistics data with channel -->
161         <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
162         <meta-data android:name="JPUSH_APPKEY" android:value="cf8a2ff321f582cbfcb55056" /> <!--  </>值来自开发者平台取得的AppKey-->
163     </application>
164 
165 </manifest>

对比两个文件就很清楚了,下载的Demo中的AndroidManifest.xml文件(去头去尾)全部拷到自己项目的AndroidManifest.xml文件中,然后自己写一个Application :

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();JPushInterface.setDebugMode(true);JPushInterface.init(this);}
}

然后就在application节点下写上:

android:name=".MyApplication"
1 <application
2         android:allowBackup="true"
3         android:icon="@mipmap/ic_launcher"
4         android:label="@string/app_name"
5         android:supportsRtl="true"
6         android:name=".MyApplication"
7         android:theme="@style/AppTheme">

 

这样就可以了,一个简单的推送就可以实现了。

 

转载于:https://www.cnblogs.com/Godfunc/p/6139045.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...

Matlab2所属分类&#xff1a;matlab例程开发工具&#xff1a;PDF文件大小&#xff1a;115KB下载次数&#xff1a;76上传日期&#xff1a;2007-09-07 20:04:29上 传 者&#xff1a;钱广说明&#xff1a; &#xff1a;Matlab遗传算法(GA)优4~-r-具箱是基于基本操作及终止条件、二…

用程序输出表格

做应用程序的时候经常需要输出excel表格&#xff0c;除了不同语言接口完善程度不同的麻烦以及要添加各种外部引用的麻烦之外还要考虑应用环境不同的office版本的问题&#xff0c;实在麻烦 当只需要输出数据&#xff0c;不管颜色什么的的话&#xff0c;有个避免上述麻烦的办法就…

elk系列1之入门安装与基本操作

preface 我们每天都要查看服务器的日志&#xff0c;一方面是为了开发的同事翻找日志&#xff0c;另一方面是巡检服务器查看日志&#xff0c;而随着服务器数量以及越来越多的业务上线&#xff0c;日志越来越多&#xff0c;人肉运维相当痛苦了&#xff0c;此时&#xff0c;参考现…

Java 7 –反编译项目硬币

大家好&#xff0c;该是从2012年开始写作的时候了。正如您在其他博客中可能已经看到的那样&#xff0c;有一些更改可以使您使用Java编程时的开发人员生活变得更加轻松&#xff1a;Diamond运算符&#xff0c;Switchs中的Strings&#xff0c;尝试使用资源&#xff0c;多次捕获等 …

git安装后找不见版本_无法安装最新版本的Gitlab

这个问题不是代码,而是Gitlab的安装.我现在试图安装Gitlab几天没有成功.实际上,很久以前,他们提出了使用wget的方法非常好,但由于我们必须使用Curl的方法,所以不可能比下载更进一步.在Ubuntu 14.04机器上,以下命令有效&#xff1a;curl https://packages.gitlab.com/install/re…

在Excel表里面插入背景图

工作中我们会经常用到MS Excel&#xff0c;通常我们打开MS Excel&#xff0c;里面的工作表都是空白单调的背景。当然了&#xff0c;MS Excel可以在工作簿里面插入背景图片。那么问题来了&#xff0c;如果你没有安装Microsoft Office&#xff0c;该如何在Excel文件里面插入好看的…

Java 7:复制和移动文件和目录

这篇文章是我关于Java 7 java.nio.file软件包的系列文章的继续&#xff0c;这次涵盖了文件的复制和移动以及完整的目录树。 如果您曾经对Java缺少copy和move方法感到沮丧&#xff0c;那么请继续阅读&#xff0c;以免麻烦。 涵盖范围中包括非常有用的Files.walkFileTree方法。 但…

java 五子棋项目_Java项目如何实现五子棋小游戏

Java项目如何实现五子棋小游戏发布时间&#xff1a;2020-07-21 14:53:06来源&#xff1a;亿速云阅读&#xff1a;77作者&#xff1a;小猪小编这次要给大家分享的是Java项目如何实现五子棋小游戏&#xff0c;文章内容丰富&#xff0c;感兴趣的小伙伴可以来了解一下&#xff0c;希…

Java中多线程的使用!!

简介&#xff1a; 1.要了解多线程&#xff0c;首先我们得先了解进程和线程。那么什么是进程&#xff1f;进程就是一个正在运行的程序分配内存让应用程序能够运行的叫做进程。那么什么又是线程呢&#xff1f;线程&#xff1a;在一个程序中&#xff0c;负责代码的执行&#xff0c…

java pkcs1转pkcs8_pkcs1与pkcs8格式RSA私钥互相转换

1、PKCS1私钥生成openssl genrsa -out private.key 1024private.key文件内容如下&#xff1a;-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQDREk3uy4x9i4a16OYOYEp5Ir2f16lsmUHB2HjGDlxkU0ju9YApyeZlUXb191ZkxJ2vx2vKppN4gKLDy5r7JMTpwch1CNvceySX6DiM4lwTAnUEZiBYgNBNrKINEt…

嵌入式码头,Vaadin和焊接

当我开发Web应用程序时&#xff0c;我希望能够从Eclipse快速启动它们&#xff0c;而不必依赖各种重量级的tomcat或glassfish插件。 因此&#xff0c;我通常要做的只是创建一个可以直接从Eclipse运行的基于Java的简单启动器。 该启动器会在几秒钟内启动&#xff0c;因此使开发工…

创建真机调试证书(苹果开发者平台各个选项对应的含义)

创建真机调试证书&#xff08;苹果开发者平台各个选项对应的含义&#xff09; 原文地址&#xff1a;http://jingyan.baidu.com/article/ff411625b8141312e48237a7.html转载于:https://www.cnblogs.com/siasyl/p/5340593.html

gl.vertexAtteib3f P42 讲数据传给location参数指定的attribute变量

参数  location  指定将要修改的attribute变量存储位置 v0  指定填充attribute变量第一个分量的值 v1  指定填充attribute变量第二个分量的值 v2  指定填充attribute变量第三个分量的值 var VSHADER_SOURCE attribute vec4 a_Position;\n void main(){\n gl_Posit…

将Spring集成到旧版应用程序中

所有Spring开发人员喜欢做的事情之一就是将Spring塞入他们正在工作的任何应用程序中–这是我生活中的罪恶感之一&#xff1a;您看到一些代码&#xff0c;认为它是垃圾&#xff0c;因为它包含几个众所周知的反模式&#xff0c;然后想想如果这个应用程序是Spring应用程序会多么酷…

java自己实现ioc_springioc原理、springmvc项目分析、自己实现IOC

从一个面试题开始&#xff1a;你自己实现IOC容器的话&#xff0c;保存bean你会使用什么数据结构来保存呢&#xff1f;现在的很多开发人员(甚至3年以上的)不一定能回答这问题&#xff0c;为什么会这样呢&#xff1f;这个跟现在springboot现在已经高度成熟了&#xff0c;很多配置…

实现两级下拉框的联动

1.实现两级下拉框的联动。 功能&#xff1a;实现点击年级下拉框&#xff0c;加载对应科目的下拉框。 第一步&#xff1a;首先要加载年级下拉框中的数据。 01.在GradeDAL层&#xff08;数据访问层&#xff09;写一个方法&#xff0c;查询所有年级的信息。 /// <summary>//…

System.nanoTime()背后是什么?

在Java世界中&#xff0c;对System.nanoTime&#xff08;&#xff09;的理解非常好。 总有一些人说它是快速&#xff0c;可靠的&#xff0c;并且在可能的情况下&#xff0c;应该使用它代替System.currentTimemillis&#xff08;&#xff09;进行计时。 总的来说&#xff0c;他绝…

python连接SQL Server取多个结果集:Pymssql模块

基本的用法可以参考&#xff1a;python连接SQL Server&#xff1a;Pymssql模块 和上一篇文章中的代码&#xff0c;只取一个结果集不同&#xff0c;这次会一次运行2个sql语句&#xff0c;然后分别取出2个结果集&#xff0c;打印输出。 代码中有详细的注释&#xff0c;一看就明白…

状态不属于代码

Web应用程序中的“状态”是什么&#xff1f; 它就是要存储的数据&#xff08;无论目的地是什么—内存&#xff0c;数据库&#xff0c;文件系统&#xff09;。 应用程序本身不得在代码中存储任何状态。 这意味着您的类应仅包含带有无状态对象的字段。 换句话说&#xff0c;在程序…

Xen安全架构sHype/ACM策略配置图文教程

实验要求 1. 熟悉Xen虚拟化平台部署&#xff1b; 2. Xen sHype/ACM安全架构中的Simple TE和Chinese Wall策略及事实上现机制的分析与验证。 第1章 Xen环境部署 1.1 版本号选择 因为Ubuntu使用广泛。软件包易于下载。我们选择Ubuntu系统进行Xen部署…