追記
最近だと、このようなことをせずともUIの方から変更できるようです。
https://mashmorgan.hatenablog.com/entry/2018/06/06/160823
以前の記事
AndroidStudioでパッケージ名を変更するのは手順が多くて少し面倒です。
なので、Rubyでスクリプトを作って半自動化してみました。
※実行は、バックアップをとった上で自己責任でお願いします。
rename_package.rb
require 'find'
require 'fileutils'
require 'tmpdir'
print "Path : "
path = gets.chop
Dir.chdir(path)
Dir.chdir("app")
# 旧パッケージ名の取得
str = File.read("src/main/AndroidManifest.xml")
old_name = str.slice(/package="(.+?)"/, 1)
puts "Old Package : #{old_name}"
print "New Package : "
new_name = gets.chop
# app 以下の全ファイルの置換
Find.find(".") {|path|
if FileTest.file?(path) then
str = File.read(path)
if str.include?(old_name) then
puts path
f = File.open(path, "w")
f.write(str.gsub(old_name, new_name))
f.close
end
end
}
# ディレクトリ構造の変換
old_dir = old_name.gsub(".", "/")
new_dir = new_name.gsub(".", "/")
Dir.chdir("src/main/java")
Dir.mktmpdir() {|tmp_dir|
FileUtils.mv(Dir.glob(old_dir + "/*"), tmp_dir)
FileUtils.rm_r(old_dir.split("/")[0])
FileUtils.mkdir_p(new_dir)
FileUtils.mv(Dir.glob(tmp_dir + "/*"), new_dir)
}