Help us understand the problem. What is going on with this article?

雑にAPKを管理しやすいファイル名にしたい

More than 3 years have passed since last update.

前置き

よくリリースAPKを作って、Driveに保存したりするのだけど、 app-develop.apk みたいな名前だと管理しにくい。
いい感じの名前に変えてくれる君を書いたのでメモ。

分かりやすい名前

APKの特徴を表す情報がほしい

  • PackageName
  • VersionName

いつ作ったのか知りたい (同じversionでAPK作り直しとかあるので)

  • Year/Month/Day/Hour/Minute/Second

これらを統合して次のような名前のAPKがよさそう

  • <packagename>-<version>-<%Y%m%d%H%M%S>.apk
  • me.mattak.example-0.0.1-20161013112233.apk

Script

apkup
#!/usr/bin/env ruby

AAPT=`find #{ENV['ANDROID_HOME']}/build-tools -type f -name 'aapt' | sort -r | head -1`.chomp
raise "aapt not found" unless File.exist? AAPT

if ARGV.size > 0
  APK_SRC=`find . -type f -name '*.apk' | grep -v unaligned | grep #{ARGV[0]} | peco --select-1 --prompt 'Source>'`.chomp
else
  APK_SRC=`find . -type f -name '*.apk' | grep -v unaligned | peco --select-1 --prompt 'Source>'`.chomp
end

LINE=`#{AAPT} dump badging #{APK_SRC} | grep package:`.chomp
LINE.sub (/name='(\S+)'/) {|it| PACKAGE = $1 }
LINE.sub (/versionName='(\S+)'/) {|it| VERSION = $1 }

FILE="#{PACKAGE}-#{VERSION}-#{Time.now.strftime('%Y%m%d%H%M%S')}.apk"
`cp #{APK_SRC} #{FILE}`
puts FILE

雑にこんな感じの書いて使ってる.
pecoだけinstallが必要なので注意.
APKだけあれば、Directoryの場所を気にせず実行できるのでべんりだ.

apkup.gif

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away