以编程方式从Google Play下载应用

时间:2013-06-05 04:30:17

标签: java android download

我需要从Google Play下载一些应用以进行分析。但我不想手动完成(我必须经常这样做,每次我想下载的应用程序都会改变!)。

所以,问题是,我是否可以编写程序来下载应用程序。如果有可能,怎么样?

我看过这个chrome插件: http://codekiem.com/2012/02/24/apk-downloader/ 但我不能相信作者(应用程序需要谷歌用户和通行证和设备ID),并决定实施我自己的程序。

1 个答案:

答案 0 :(得分:1)

对于那些正在寻找Java实现的人来说,这里是:

顶级步骤:

  1. 从手机中收集gmail ID,密码,Android ID和安全令牌
  2. 下载Akdeniz实施的抓取工具的jar文件
  3. 从Akdeniz
  4. 下载googleplay.java(cli)的源文件
  5. 修改googleplay.java
  6. 把它们放在一起:D
  7. 详细步骤:

    1. Gmail ID和密码很明显!对于 Android ID ,请按照demirozali并使用“getAndroidID”功能。我无法使“getAuthToken”工作!因此,我使用toxicbakery获取安全令牌。请注意,函数“updateToken”(实际上是获取安全令牌)应该在AsyncTask而不是UI线程上调用。

    2. Akdeniz github site下载“ googleplaycrawler-0.1-SNAPSHOT.jar ”文件。

    3. 我无法在jar文件中使用“GooglePlayAPI”类。所以我决定更改CLI版本。 “googleplaycrawler-0.1-SNAPSHOT.jar”中的CLI类称为“ googleplay.java ”,可以从the source files下载。

    4. 将“googleplay.java”重命名为“ Changed_googleplay.java ”并进行修改。这样方法“ searchCommand()”返回String的arrayList,而不是在控制台上打印结果。

    5. 完成上述所有步骤后,在jetBrains或...中创建项目,并将“googleplaycrawler-0.1-SNAPSHOT.jar”添加为库。另外,将“Changed_googleplay.java”添加到您的src目录中。最后在您的应用程序中使用以下方法。您可以使用以下类搜索查询,然后下载与该查询对应的所有免费应用程序。

      public void SearchAndDownload() {
          String login = "xxxx@gmail.com";
          String password = "xxxx";
          String androidId = "xxxx";
          String securitytoken = "xxxx";
          String command = "search";
          String query = "Maps";
          String offest = "0";
          String number = "5";
      
          Changed_googleplay gp = new Changed_googleplay();
          ArrayList<String> res = gp.operate(new String[]{"-i", androidId, "-e", login, "-p", password, "-t", securitytoken, command, "-o", offest, "-n", number, query});
      
          res.remove(0);
          if (command.equals("search")) {
              System.out.println("Title"+"\t"+"Package Name"+"\t"+"Price"+"\t"+"Number of Downloads");
              for (String line : res){
                  String[] split = line.split(Changed_googleplay.DELIMETER);
                  String name = split[0];
                  String packageName = split[1];
                  String creator = split[2];
                  String price = split[3];
                  String size = split[4];
                  String dlNO = split[5];
                  if(price.equals("Free")){
                      System.out.println(name+"\t"+packageName+"\t"+price+"\t"+dlNO);
                      gp.operate(new String[]{"-i", androidId, "-e", login, "-p", password, "-t", securitytoken, "download", packageName});
                  }
              }
          }
      }
      
    6. 您可能需要查看爬网程序项目main page中的命令行选项列表。

      玩得开心!

相关问题