Browse Source

floatsdk更新

zqbo 5 years ago
parent
commit
17c288eb4f
4 changed files with 254 additions and 5 deletions
  1. 3 3
      package_test.py
  2. 57 2
      package_utils_record.py
  3. BIN
      sdk/float/libs/FloatSDK-1.0.10.jar
  4. 194 0
      sdk/float/smali/EntryActivity.smali

+ 3 - 3
package_test.py

@@ -10,9 +10,9 @@ def packTest():
     '''
     测试代码
     '''
-    game = 'mxy'
-    sdk = 'jm'
-    subChannel = 'mxy'
+    game = 'sample'
+    sdk = 'float'
+    subChannel = 'test'
 
     channelPath = file_utils.getChannelPath(game, sdk)
     configPath = os.path.join(channelPath, 'config.json')

+ 57 - 2
package_utils_record.py

@@ -22,6 +22,9 @@ import sys
 import importlib
 import uuid
 
+from xml.etree import ElementTree as ET
+from xml.etree.ElementTree import SubElement
+
 def pack(game, sdk, config):
     config['cache'] = uuid.uuid1()
     subChannel = config['subChannel']
@@ -78,6 +81,8 @@ def pack(game, sdk, config):
     ret = addConfig(game, sdk, subChannel, config)
     if ret:
         return ret
+    #保存旧包名
+    config['oldPackageName'] = getPackageName(game, sdk, subChannel, config)
     # 更改包名
     if 'packageName' in config and config['packageName'] != '':
         ret = changePackageName(game, sdk, subChannel, config)
@@ -110,6 +115,10 @@ def pack(game, sdk, config):
         return ret
     # 乐变sdk的特殊处理
     ret = game_utils.sdkLebianChange(game, sdk, config)
+    if ret:
+        return ret
+    # 复制EntryActivity文件
+    ret = copyEntryActivityCode(game, sdk, subChannel, config)
     if ret:
         return ret
     # 游戏脚本处理
@@ -224,6 +233,7 @@ def copyRes(game, sdk, subChannel, config):
         ret = file_utils.copyFileAllDir(jniPath, decomplieJniPath, False, abiFilters)
         if ret:
             return ret
+
     return 0
 
 def mergeDrawableRes(game, sdk, subChannel, config):
@@ -982,9 +992,11 @@ def apksignerApk(game, sdk, subChannel, config):
             os.makedirs(config['outPath'])
 
         signedApk = os.path.join(config['outPath'], config['outName'] + '.apk')
+        print('signedApk = ' + signedApk)
     elif 'outName' in config:
         signedApk = file_utils.getRenameApkPath(game, sdk, config['cache'], config['outName'])
-    
+        print('signedApk = ' + signedApk)
+
     # java -jar apksigner.jar sign --ks key.jks --ks-key-alias releasekey --ks-pass pass:pp123456 --key-pass pass:pp123456 --out output.apk input.apk
     v2disable = ''
     if 'v2disable' in config and config['v2disable']:
@@ -1109,4 +1121,47 @@ def packConsole(game, sdk, subChannel):
 
     print('success %d, failure %d' % (successCount, failureCount))
         
-    return 0
+    return 0
+
+def copyEntryActivityCode(game, sdk, subChannel, config):
+    '''
+    拷贝代码
+    '''
+    print('copy EntryActivity.smali')
+    sdkPath = file_utils.getFullSDKPath(sdk)
+    EntryActivity = 'EntryActivity.smali'
+    entryFile = os.path.join(sdkPath, 'smali', EntryActivity)
+    decompliePath = file_utils.getDecompliePath(game, sdk, subChannel, config['cache'])
+    smaliPath = os.path.join(decompliePath, 'smali')
+    targetPath = file_utils.getPackagePath(smaliPath, config['packageName'])
+    targetFile = os.path.join(targetPath, EntryActivity)
+    ret = file_utils.copyFile(entryFile, targetFile)
+    if ret:
+        return ret
+    writeActivityToManifest(os.path.join(decompliePath, 'AndroidManifest.xml'),config)
+    oldText = 'com/jmhy/floatsdk/sample/EntryActivity'
+    newText = config['packageName'].replace('.', '/') + "/EntryActivity"
+    print("EntryActivity.smali change '{}' to '{}' ...".format(oldText,newText))
+    file_utils.replaceContent(targetFile, oldText, newText)
+    return 0
+
+def writeActivityToManifest(targetManifest, config):
+    androidNS = 'http://schemas.android.com/apk/res/android'
+    ET.register_namespace('android', androidNS)
+    targetTree = ET.parse(targetManifest)
+    targetRoot = targetTree.getroot()
+    appNode = targetRoot.find('application')
+    activitys = appNode.findall('activity')
+    keyName = "{0}{1}{2}name".format("{",androidNS,"}")
+    for activity in activitys:
+        activityName = activity.get(keyName)
+        if activityName.find('.EntryActivity')>=0:
+            oldName = activityName;
+            newName = config['packageName'] + ".EntryActivity"
+            activity.set(keyName,newName)
+            print("EntryActivity change '{}' to '{}' ...".format(oldName, newName))
+    targetTree.write(targetManifest, 'UTF-8')
+
+
+
+

BIN
sdk/float/libs/FloatSDK-1.0.10.jar


+ 194 - 0
sdk/float/smali/EntryActivity.smali

@@ -0,0 +1,194 @@
+.class public Lcom/jmhy/floatsdk/sample/EntryActivity;
+.super Landroid/app/Activity;
+.source "EntryActivity.java"
+
+
+# direct methods
+.method public constructor <init>()V
+    .locals 0
+
+    .line 18
+    invoke-direct {p0}, Landroid/app/Activity;-><init>()V
+
+    return-void
+.end method
+
+.method private openWebActivity(Ljava/lang/String;ZLjava/lang/String;)V
+    .locals 2
+
+    .line 49
+    new-instance v0, Landroid/content/Intent;
+
+    const-class v1, Lcom/tool/floatsdk/ui/WebActivity;
+
+    invoke-direct {v0, p0, v1}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
+
+    const-string v1, "token"
+
+    .line 50
+    invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+
+    const-string p1, "result"
+
+    .line 51
+    invoke-virtual {v0, p1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
+
+    const-string p1, "type"
+
+    .line 52
+    invoke-virtual {v0, p1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+
+    const-string p1, "url"
+
+    .line 53
+    sget-object p2, Lcom/tool/floatsdk/ui/FloatFragment;->result:Lcom/tool/floatsdk/entity/Result;
+
+    iget-object p2, p2, Lcom/tool/floatsdk/entity/Result;->folat_url:Ljava/lang/String;
+
+    invoke-virtual {v0, p1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+
+    const/high16 p1, 0x10000000
+
+    .line 55
+    invoke-virtual {v0, p1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
+
+    .line 56
+    invoke-virtual {p0}, Lcom/jmhy/floatsdk/sample/EntryActivity;->finish()V
+
+    .line 58
+    invoke-virtual {p0, v0}, Lcom/jmhy/floatsdk/sample/EntryActivity;->startActivity(Landroid/content/Intent;)V
+
+    return-void
+.end method
+
+
+# virtual methods
+.method protected onCreate(Landroid/os/Bundle;)V
+    .locals 8
+
+    .line 22
+    invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
+
+    .line 23
+    invoke-static {}, Lcom/tool/floatsdk/ui/WebActivity;->finishActivity()V
+
+    .line 24
+    invoke-virtual {p0}, Lcom/jmhy/floatsdk/sample/EntryActivity;->getIntent()Landroid/content/Intent;
+
+    move-result-object p1
+
+    const-string v0, "token"
+
+    .line 25
+    invoke-virtual {p1, v0}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
+
+    move-result-object v0
+
+    const-string v1, "result"
+
+    const/4 v2, 0x0
+
+    .line 26
+    invoke-virtual {p1, v1, v2}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
+
+    move-result v1
+
+    const-string v3, "type"
+
+    .line 27
+    invoke-virtual {p1, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
+
+    move-result-object p1
+
+    const-string v3, "eeee"
+
+    const-string v4, "EntryActivity  token = %s , openresult = %s , type = %s"
+
+    const/4 v5, 0x3
+
+    .line 28
+    new-array v5, v5, [Ljava/lang/Object;
+
+    aput-object v0, v5, v2
+
+    new-instance v6, Ljava/lang/StringBuilder;
+
+    invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
+
+    invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
+
+    const-string v7, ""
+
+    invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+
+    invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+
+    move-result-object v6
+
+    const/4 v7, 0x1
+
+    aput-object v6, v5, v7
+
+    const/4 v6, 0x2
+
+    aput-object p1, v5, v6
+
+    invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
+
+    move-result-object v4
+
+    invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
+
+    .line 30
+    sget v3, Lcom/tool/floatsdk/SDK;->jumpMapping:I
+
+    const/4 v4, 0x5
+
+    if-eq v3, v4, :cond_0
+
+    .line 43
+    invoke-direct {p0, v0, v1, p1}, Lcom/jmhy/floatsdk/sample/EntryActivity;->openWebActivity(Ljava/lang/String;ZLjava/lang/String;)V
+
+    goto :goto_1
+
+    :cond_0
+    const-string p1, "eeee"
+
+    const-string v1, "----isSubmitRank----"
+
+    .line 32
+    invoke-static {p1, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
+
+    .line 33
+    sput-object v0, Lcom/tool/floatsdk/SDK;->access_token:Ljava/lang/String;
+
+    .line 34
+    sput v2, Lcom/tool/floatsdk/SDK;->jumpMapping:I
+
+    .line 36
+    :try_start_0
+    sget-object p1, Lcom/tool/floatsdk/api/SDKAPI;->mScore:Ljava/lang/String;
+
+    sget-object v0, Lcom/tool/floatsdk/api/SDKAPI;->mScortType:Ljava/lang/String;
+
+    sget-object v1, Lcom/tool/floatsdk/api/SDKAPI;->mRankSubmitListener:Lcom/tool/floatsdk/listener/RankSubmitListener;
+
+    invoke-static {p1, v0, v1}, Lcom/tool/floatsdk/api/SDKAPI;->submitRankData(Ljava/lang/String;Ljava/lang/String;Lcom/tool/floatsdk/listener/RankSubmitListener;)V
+    :try_end_0
+    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
+
+    goto :goto_0
+
+    :catch_0
+    move-exception p1
+
+    .line 38
+    invoke-virtual {p1}, Ljava/io/IOException;->printStackTrace()V
+
+    .line 40
+    :goto_0
+    invoke-virtual {p0}, Lcom/jmhy/floatsdk/sample/EntryActivity;->finish()V
+
+    :goto_1
+    return-void
+.end method