「Generate sigined APK」がうまく行かない場合の build.gradle

Google Play Store にアップすると拒否られる.

なんかうまくいかないので小一時間.

その際, こんなダイアログメッセージが表示される.

For Gradle-based projects, the signing configuration should be specified in the Gradle build scripts. Configure your signing configurations as described in the user guide: http://tools.android.com/ tech-docs/new-build-system/ user-guide #TOC-Signing-Configurations

Gradleのベースのプロジェクトは、署名の設定は、Gradleのビルドスクリプトで指定する必要があります。ユーザーガイドに記載されているように、あなたの署名の設定を構成しましょう。

調べてみると, buiid.gradle にパスワードを記述したり, コンソールからのビルドでそれらを入力させたりの方法がたくさん見つかるのだが, できれば, プレーンなテキストでキーストアのパスワードを build.gradle にも書きたくない.

キーストアのパスワードマネージャが, せっかく Androis Studio についてるのでそれを使いたい.

以下で, それを満たせる.

続きを読む >>


Travis Ci と Github で Android 開発な .travis.yml

Travis_CI__Configuring_your_build

何かと使えるようなのでメモ.

language: java

jdk:
  - openjdk7
  - openjdk6
  - oraclejdk7
  - oraclejdk8

branches:
  only:
    - dev
    - master
env:
  global:
    - ANDROID_SDK_VERSION=“r22.6.2"
before_install:

# required libs for android build tools
# Update a system for ia32 libraries
  - sudo apt-get update -qq
  - if [ `uname -m` = x86_64 ]; then sudo apt-get update; fi
  - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch; fi

##
# Gradle

# newer version of gradle
wget http://services.gradle.org/distributions/gradle-1.11-bin.zip
unzip -qq gradle-1.11-bin.zip
export GRADLE_HOME=$PWD/gradle-1.11
export PATH=$GRADLE_HOME/bin:$PATH

# just to test gradle version, against our provided one
  - gradle -v

##
# Android SDK

# newest android SDK
  - wget http://dl.google.com/android/android-sdk_${ANDROID_SDK_VERSION}-linux.tgz
  - tar -zxf android-sdk_${ANDROID_SDK_VERSION}-linux.tgz
  - export ANDROID_HOME=`pwd`/android-sdk-linux
  - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

# manually set sdk.dir variable, according to local paths
  - echo "sdk.dir=$ANDROID_HOME" ]]> local.properties

##
# Android Components

# Install required components.
# For a full list, run `android list sdk -a --extended`
  - echo yes | android update sdk --filter platform-tools --no-ui --force ]]> /dev/null
  - echo yes | android update sdk --all --filter build-tools-19.0.3 --no-ui --force ]]> /dev/null
  - echo yes | android update sdk --filter android-19 --no-ui --force ]]> /dev/null
  - echo yes | android update sdk --filter extra-android-support --no-ui --force ]]> /dev/null
  - echo yes | android update sdk --filter extra-android-m2repository --no-ui --force ]]> /dev/null
  - echo yes | android update sdk --filter extra-google-m2repository --no-ui --force ]]> /dev/null

# for gradle output style
export TERM=dumb

# Create and start emulator
  - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
  - emulator -avd test -no-skin -no-audio -no-window &

install:
  - gradle check

after_install:

before_script:
  - chmod +x wait_for_emulator
  - ./wait_for_emulator

script:
  - sudo chmod +x gradlew
  - ./gradlew connectedCheck lint
  - ./gradlew connectedInstrumentTest

after_script:

after_success:
  - ./gradlew uploadArchives

after_failure:

wait_for_emulator

#!/bin/bash
bootanim=""
failcounter=0
until [[ "$bootanim" =~ "stopped" ]]; do
  bootanim=`adb -e shell getprop init.svc.bootanim 2>&1`
  echo "$bootanim"
  if [[ "$bootanim" =~ "not found" ]]; then
      let "failcounter += 1"
      if [[ $failcounter -gt 3 ]]; then
        echo "Failed to start emulator"
        exit 1
      fi
  fi
  sleep 10
done
echo “Done”

Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community

Travis CI: Travis CI's use of GitHub API Scopes

Travis CI: How to skip a build

JakeWharton/sdk-manager-plugin · GitHub


PHP+ADB でAndroid画面操作の保存と再現をする

adb経由で getevent/sendevent を使います.

Getevent | Android Developers

adb_—_121×44

やってみておもしろかったの以下からのPHPへの移植です.

getevent/sendeventでAndroid端末の操作自動化

実行方法は同様に,ADB接続したパソコン上コンソールから

保存

$ adb shell getevent /dev/input/event2 | php getevent.php > events.txt

保存したファイルはシェルスクリプトです.

$ cat event.txt
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 283
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2331
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 4294967295
sleep 0.060
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 1886
sleep 0.344
adb shell sendevent /dev/input/event2 3 53 800
sleep 0.000
adb shell sendevent /dev/input/event2 3 54 2312
sleep 0.000
adb shell sendevent /dev/input/event2 3 58 64
sleep 0.000
adb shell sendevent /dev/input/event2 3 48 4
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 798
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2311
...

このときの タッチパネルを表す /dev/input/event2 は端末によって違います.

コンソールから以下で確認しましょう.

以下Nexus4の場合.

$ adb shell getevent
add device 1: /dev/input/event0
  name:     "pmic8xxx_pwrkey"
add device 2: /dev/input/event1
  name:     "keypad_8064"
add device 3: /dev/input/event4
  name:     "apq8064-tabla-snd-card Headset Jack"
add device 4: /dev/input/event3
  name:     "apq8064-tabla-snd-card Button Jack"
add device 5: /dev/input/event5
  name:     "hs_detect"
add device 6: /dev/input/event2
  name:     "touch_dev"
^C

再現

$ sh events.txt

続きを読む >>