安卓开发 👒

Gradle

使用 Gradle 来管理依赖,由于国内的网络环境,所以建议换成阿里的 Maven 仓库:

    repositories {
        maven { url "https://maven.aliyun.com/repository/google" }
        maven { url "https://maven.aliyun.com/repository/jcenter" }
        google()
        jcenter()

    }

image.png

这些个问题是在是太多了,干脆一不做二不休,直接下载依赖到本地,就不用通过网络下载依赖,并且这样速度也比较快。谷歌官方提供了稳定的依赖。下载地址为offline-gmaven-stable

使用方法很简单,作为 Windows 用户,你需要在将下载后的文件解压到下面 👇目录 %USER_HOME%/.android/manual-offline-m2/ ,这些目录本身不存在,你需要创建它。作为 Mac 和 Linux 的用户,你需要将下载的文件解压到 ~/.android/manual-offline-m2/ ,当然你可以使用命令 mkdir -p ~/.android/manual-offline-m2/ 来创建这样的目录。

升级离线组件的时候,你需要遵循下面的步骤:

  • 删除 manual-offline-m2 目录里面的所有内容
  • 重新下载 offline-gmaven-stable
  • 将离线组件里面的内容解压到 manual-offline-m2 里面

按照上面的步骤来,你会的得到下面这样的结果。

Xnip2019-10-13_20-52-27.png

接下来就是在我们的项目里面使用这些离线组件了,其实很简单的。
将下面的脚本保存在一个名为 offline.gradle 的文件里面:

def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2")
def repos = new ArrayList()
reposDir.eachDir {repos.add(it) }
repos.sort()

allprojects {
  buildscript {
    repositories {
      for (repo in repos) {
        maven {
          name = "injected_offline_${repo.name}"
          url = repo.toURI().toURL()
        }
      }
    }
  }
  repositories {
    for (repo in repos) {
      maven {
        name = "injected_offline_${repo.name}"
        url = repo.toURI().toURL()
      }
    }
  }
}

Windows 用户将这个文件保存的路径为 %USER_HOME%/.gradle/init.d/offline.gradle ,mac 和 Linux 用户保存路径为 ~/.gradle/init.d/offline.gradle

可以通过下面的方法检验离线组件是否工作:

buildscript {
    repositories {
        // Hide these repositories to test your build against
        // the offline components. You can include them again after
        // you've confirmed that your project builds ‘offline’.
        // google()
        // jcenter()
    }
    ...
}
allprojects {
    repositories {
        // google()
        // jcenter()
    }
    ...
}

:72: :84: 哈哈哈

遇到这种 Zip Header not found 这种问题,根据 StackOverflow 上面的说法,首先我们得重新下载 Gradle ,下载地址,然后关闭 IDE,同时删除掉 ~/.gradle/wrapper/dists/ 里面的东西,诸多原因,比如 系统故障网络连接丢失 等等。完成这几步之后,就是在 IDE 里面指定本地 Gradle 的路径了。

Xnip2019-10-20_21-04-49.png

因为每次创建项目都会恢复默认的设置,所以我建议更改一下 IDEA 的默认设置。

Xnip2019-10-20_21-06-39.png

不过这里面并没有设置 Gradle Home 的选项。但是还是建议全局设置下国内的 maven 仓库。

allprojects {
    repositories {
        mavenLocal()
        maven {
          name 'aliyun_google'
          url "https://maven.aliyun.com/repository/google"
        }
        maven {
          name 'aliyun_jcenter'
          url "https://maven.aliyun.com/repository/jcenter"
        }
    }
}

复制上面的内容,然后执行 pbpaste > ~/.gradle/init.gradle

开发常用

在安卓应用程序开发方面,我最常用的依赖有一些:

    implementation 'com.squareup.okhttp3:okhttp:4.4.0'
    implementation 'com.google.android:flexbox:2.0.1'

其中flex类似 Web 上面的 flex 布局,okhttp是用来发起 http 请求的。

常用 ADB 命令

  1. 隐藏底部虚拟按键: adb shell settings put global policy_control immersive.navigation=*
  2. 隐藏状态栏: adb shell settings put global policy_control immersive.status=*
  3. 取消设置: adb shell settings put global policy_control null
  4. 同时隐藏底部虚拟按键和状态栏: adb shell settings put global policy_control immersive.full=*
  5. 安装安装包: adb install $PATH_OF_PACKAGE

通过命令打开 AVD 安卓虚拟机

emulator -list-avds
emulator -avd $name

👏 怎么样,给个评价呗?