python搭建友盟以及个推推送web服务器
一、友盟客户端demo:
由于SDK原因,新版Android Studio的Android API 28 Platform无法同步新建项目,
所以我最终选择下载android-studio-bundle-141.1903250-windows.exe,Android API 22 Platform。
安卓虚拟机我选择的是Genymotion,十分好用。http://www.runoob.com/w3cnote/android-tutorial-genymotion-install.html
参考链接完成安装并加入Genymotion-ARM-Translation.zip。
参考https://developer.umeng.com/docs/66632/detail/66744导入Demo项目,由于SDK不匹配,要修改一些文件。
Android结构下:
1、build.gradle(Project: MultiFunctionAndroidDemo):
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
2、build.gradle(Module: UMLibrary):
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
3、gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
由于ExampleInstrumentedTest报错,查了资料也没改成,最后决定用默认的将其替换
package com.umeng.soexample;
import android.app.Application;
import android.test.ApplicationTestCase;
public class ExampleInstrumentedTest extends ApplicationTestCase<Application> {
public ExampleInstrumentedTest() {
super(Application.class);
}
}
其余按照参考教程即可。
二、友盟推送使用
在友盟官网下载python SDK v1.0 beta, 由于是beta版本,所以代码存在错误。
demo.py:
1、AndroidNotification.DisplayType.NOTIFICATION -> AndroidNotification.DisplayType.notification
2、删除对setExtraFiled的使用
androidnotification.py:
更正为:
三、个推推送使用
客户端安卓模拟器拉入getui_sdk.apk,获得CID
下载python sdk按教程使用。
我这里用个推第二次推动时,会在没找到最优host的时候调用self.httpPostJson(self.host, params),
程序会报错:
我的解决方法是在IGeTui类初始化的时候就给self.host先根据输入的host赋一个初始值。
四、基于django建立python web服务器
参考http://www.runoob.com/django/django-tutorial.html
由于我要用POST默认的x-www-form-urlencoded格式发送数据,所以我们要取消csrf验证。
在settings.py中注释相关字段即可