Concurrency: Basic Threading (2)
5. Sleep Sleep()可以在指定时间内阻塞当前任务的执行。 import java.util.concurrent.*; public class SleepingTask extends LiftOff { public void run() { try { while(countDown– > 0) { System.out.print(status()); // Old…
Read more
learn, build, evaluate
5. Sleep Sleep()可以在指定时间内阻塞当前任务的执行。 import java.util.concurrent.*; public class SleepingTask extends LiftOff { public void run() { try { while(countDown– > 0) { System.out.print(status()); // Old…
Read more
本系列是Thinking in Java (Fourth Edition)中Concurrency一章的内容总结。主要关注实例、常见用法和陷阱,便于日后查用。 1. Defining Tasks 任务(Task)用于描述希望并发运行的活动。定义一个任务,只需实现Runnable接口,并在run()方法中给出任务的具体行为: public class LiftOff implements Run…
Read more
Proguard可以让Android插件剔除未使用的代码和资源,减小应用的体积,只需配置minifyEnabled 和shrinkResources 即可。 以这里的工程为例,在/app/build.gradle中加入了对Google Play Services的依赖: dependencies { … compile 'com.google.android.gms:play…
Read more
在Android的Java虚拟机上运行的是Dalvik字节码,而不是Java字节码。在Java编译完成后,Java字节码会被转换为Dalvik字节码,称为Dexing。在这个过程中,会生成一张包含了应用中的所有方法的表,每个方法用两个字节进行索引,也就是说,最多能有65k个方法。如果方法数量过多,将无法完成编译。 以这里的工程为例,总共有100个类,每个类有700个方法,尝试编译将给出错误…
Read more
给App签名需要三个步骤:首先需要创建一个Key Store和一个Key;然后在build.gradle中创建一个签名配置,主要用于描述如何访问keystore和key;最后要把这个签名配置指定给Build Type。 1. 创建Key Store和Key 选择Build > Generate Signed APK…,打开Generate Signed APK向导,首先需…
Read more
可以直接使用Android Studio的菜单File > New > New Module > Android Library建立Android Library,如图1。 创建一个名为My Android Library的Android Library,如图2。 此时项目根目录下的settings.gradle里会自动添加myandroidlibrary 作为Sub…
Read more
1. 建立Library 首先配置一个Java项目作为Library。创建一个Android App工程,在工程根目录/javaJokes/src/main/java/com/udacity/gradle/jokes/下建立Joker.java,内容为: package com.udacity.gradle.jokes; public class Joker { public String g…
Read more
1. Declaring Flavors 除了使用Build Type,也可以使用Product Flavor来对build进行定制。Product Flavor一般用于创建提供给用户的不用应用版本,比如免费版和付费版。 Anroid插件不会自动创建默认的Product Flavor。要创建Product Flavor,只需在productFlavors {} 块中进行定义,如: andr…
Read more
新建一个Android App工程,可以看到Android Studio会自动生成Gradle脚本。 1. build.gradle 先看项目根目录的build.gradle,里面首先指定了JCenter作为Repository,为classpath 添加了依赖com.android.tools.build:gradle ,这是Gradle的Android插件。 buildscript {…
Read more
1. 在Android Studio中导入Gradle项目 首先建立一个简单的任务,建立gradle.build,加入: task tellJoke << { println "What's a build master's favorite black metal band?" println "Gradle of Filth!&…
Read more