2022年1月25日火曜日

【Android USB oscilloscope】(6) Android Studioのprojectをコピー&名前変えるやり方

余っているAndroidスマホをオシロにしよう!

Android Studioのprojectをコピーするのはどうしたらいいの? その時に名前を変えたいのだけれどどうしたらいいの?

net情報によると、ファイル内に記述されたproject名を片っ端から書き換える”方向性”らしいんです.統一された操作で一気にrenameは出来ないっぽいみたいと言っても過言ではない気がした.やってみました.たぶん出来たと思う.

手順1
priject folderをcopyして、renameする.これはwindows上でフツーにやる.
ここでは、kotlin01_USBattach → kotlin02_USB へ増殖させたいわけです.

手順2
Android Studioを起動して kotlin02_USB を開きます.この時点ではフォルダは02であれど、Android Studioのproject認識は01のままのようです.これはダメだ.

手順3
projectにあるファイルを片っ端から開いてtext表示させ、"kotlin01_USBattach"を探して"kotlin02_USB"に変える.中には"kotlin01_usbattach"のように小文字表記もあるのでそうゆう場合は小文字のままで"kotlin02_usb"とする.
prokect内のこれだけのfileが要変更でした.かったるいです.
gradle関連の2つは変更後に「syncNow」を忘れずにやります.

手順4
以上の操作でほぼrenameは完了しているのですが、3つだけまだ01のままです.これを修正するにはどうしたらいいのか?
com.example.bangflat.kotlin01_usbattachという名のフォルダを右クリック.
   →Refactor→Rename→Rename Package→kotlin02_USB→refactor
と操作します.
これをやってもひとまず無変化なのですが、ビルドすると表示が02に変わります.

たぶんこれでproject名が変わったと思います.

結局めんどくさいというのが結論でした.

やれやれ~

5へ          7へ

かしこ

29 件のコメント:

  1. ようこそ「オブジェクト指向」の世界へ!

    オブジェクト指向「的」なアプリの場合は、ファイラーで
    物理的に「フォルダコピー」しただけではダメで、
    >ファイル内に記述されたproject名を片っ端から書き換える
    のような操作が、必ず必要になります。(内部に「名前」などを保持しているため。)

    ※余談ですが、古(いにしえ)の「unix」でも、似たような問題はあって、
    「シンボリックリンク」を多用したプロジェクトでは、フォルダコピーした後に、
    「リンク先を、手動で変えないと動かない」ソフトとかありましたね。
    (そして、共有ライブラリとか、「変えちゃいけないところ」まで変えてしまい「動かなくなる」のがお約束・・・)

    つか、こんなの本来「人間にさせるべきもの」ではなくて、IDEに、
    「プロジェクトコピー」みたいな機能があって然るべきだよな。
    それがないIDEは、「IDEの名」に値しないわ。

    返信削除
    返信
    1. >ようこそ「オブジェクト指向」の世界へ!

      おおお、ソフト屋っぽい身分に昇格した気が.

      copy projectを探したんだけど見つからなくて、検索したら「手作業」らしく落胆しました.ぐぇぇ

      kotlin02_USBをいじる前にzipにでも圧縮しておこうそうしよう.
      てか、revisionを保持してあとでロールバックする機能とかないのかな? ないっぽいなぁ.う~ん

      削除
    2. うえでRefactorすると書きましたが、作用してくれる範囲が限定的であまり役に立たなかったです.

      削除
    3. バージョン管理は、git が良いですよ。多分、連携できる機能があるはず。
      (これも無ければ、ホントに「IDEの名」に値しない、です・・・)
      ※git は、汎用的に「ファイルバージョン管理」として使えるので(Word や Excel でも管理できます。ちょっと使い勝手は悪いですが。)重宝してます。
      さすが、「Linuxのソースファイル管理ソフト」として作られただけはあります。

      削除
    4. そういえばVCS→gitがあります.cloneにしか使ってませんでしたが.
      各revisionをにgitクラウドに置く感じですかね.

      削除
    5. >そういえばVCS→gitがあります
      やはりありましたか。
      ※VCS(Version Control System)のメニューがあるということは、git以外も使えるということかな?
      >各revisionをにgitクラウドに置く感じ
      そんな感じです。
      ※内部的には「差分」のみを管理していますが、特に意識しなくても大丈夫です。
      ちなみに、gitのリポジトリは、githubみたいに「外部のクラウドサーバ」にも置けますが、個人使用ならば「単純なフォルダ」(HDD内でも、ネットワーク共有フォルダでも、どこでも好きな所に置けます)で十分ですね。

      削除
    6. 最低限のバージョン管理ならば、
      ・cloneした先のフォルダ(ローカルHDD内のフォルダのはず)
      の中に、隠しフォルダとして「.git」というフォルダがあって、それが、
      「ローカルリポジトリ」の役割をしているので、その中でバージョン管理は可能です。
      ※それ以外に「リモートリポジトリ」として、「共有フォルダ」とか使えますが、最初は要らないかも。
      とりあえず「push」さえしなければ(というか、多分権限が無いので出来ないと思いますが)大丈夫です。

      削除
    7. Windows ならば、TortoiseGitが、使いやすいです。(自分もこれ使ってます。)
      ※ググれば、インストール方法とかいくらでも出てきます。

      削除
    8. >git以外も使えるということかな?

      たしか他に2つあったよな.聞いたことなかったけど.

      いまはみんなgitなんですね.わたしはunixのvcsでチェックイン/チェックアウトしてたぐらいです、90年代

      削除
    9. >90年代
      多分その頃は、「CVS(Concurrent Versions System)」ですね。
      ・ちなみに「Subversion」は、「その正統な後継」と言われてます。

      >たしか他に2つあったよな
      多分、それならば
      ・Subversion(svn)
      ・Mercurial(hg)
      だと思います。(流石に、CVSはないよな・・・知らんけど。)

      この辺
      https://qiita.com/maya_shack/items/97c0a56fb6e8a5af6b05
      CVSとSubversionとGitを比較してみる
      が、参考になるかもしれません。
      (この3つは「名前の同じ、意味の違う概念・コマンド」があったりして、ややこしいです。)

      ※最近は、「Mercurial(hg)」( ← まさに「水銀」が由来です)も流行ってるみたいですが、私はよく知りません。

      削除
    10. そうでしたCVSですね.微妙にVCSじゃなかった...

      削除
  2. 一人でやるならsubversionとかが簡単でよいと思います。
    複数人でやるとgitがとかでしょうか?
    最近色々さまよっているので、色々なソース管理に触れる事ができています。(^^;

    以前はプロジェクト丸ごとバックアップ。
    最新版は個人のPCにしかない。
    納品したシステムのバックアップがないときがある。
    微妙にバージョン毎に動きが違う。(置き換えると動かないものもあり)

    というアバウトなところで開発していた時はソースがどこに行ったか判らなくなって
    大騒ぎした事が何度かありました。

    今なら言える。
    バージョン管理はきっちりと。
    開発途中が無視していいいけど、納品システムのソースはすぐ取り出せるようにきちんと管理しましょう!

    返信削除
    返信
    1. おはよーございます

      プリント基板のversion管理は、番号付けて、フォルダごとzip圧縮、別マシンにbackup みたいなのを手動でやってます.

      firmwareも同じかんじでやってます.

      subversion使ってみますかな.

      削除
    2. Subversion は、昔は私も使っていましたが、Gitに慣れてからは、使わなくなりました。
      考え方としては、Subversion は、
      ・フォルダごとzip圧縮、別マシンにbackup
      というのを、自動でやってる感じです。(なので、「全体」に、リビジョンが付く。
      Gitは分散型なので、「コミット単位」に、「コミットナンバー」が振られて、それを管理します。なので、「マージツリー」などで、細かく管理できる。
      (Subversion は、こういう芸当ができないので、私は使わなくなっちゃいました。)
      あと、Subversion は、必ず「明示的な、リポジトリ」を作成しないといけませんが、Gitは、ローカル管理でよければ、「git init」すれば、勝手に初期化されて「何も考えずに」使い始めることができます。
      (なぜか初心者向けの本には、「git clone」から始めるモノばかりなので、あまりこういうKnow How は、知られていないような気がする。Gitは勿論クラウドでも使えますが、個人で使えないわけじゃないです。)

      ※まぁ、個人で使うのなら「どれ使うのが正解」というワケでもないので、(仕事だと、最近は Git使えないと致命的ですが。)好きなものを使えばよいと思います。

      削除
    3. というか、実は、「ソフト開発者のあいだ」でも、前から、
      「Git派」と「Subversion派」
      みたいなのがあります。(最近は「Mercurial派」も居ますね)
      ・古(いにしえ)からある、オープンソース公開リポジトリである SourceForgeは、長らくSubversion しかサポートしてませんでしたが、最近は Git も扱うようになりました。
      ・Githubは、名前の通り、「Gitのオープンソース公開リポジトリ」です。
      ※仕事(勿論、複数人での開発)でも、Subversionで管理してるところは結構ある。(小規模が多い感じ。あと、クラウドでやってるのは(あるかもしれないが)私は見たことがない。)

      削除
    4. 独り開発なのでコミットじゃなくて全体一括で構わないといえばそんな境遇かしら。

      そういえば確定申告の季節ですが、やよいの青色申告もクラウドできます。わたしはローカルでやってますが。

      削除
  3. 実は、
    >ソースがどこに行ったか判らなくなって大騒ぎ
    に「なったことがないソフト会社」を、私は知りません。
    マトモに「バージョン管理」してるのは、ホントにごく一部の会社、だけです。
    ※Git や Subversion で管理してても、
    「バージョン地獄」「リビジョン地獄」「コミット地獄」
    の大海のなかを彷徨う羽目になります。
    ※まぁ、「管理者が無能」なだけなのですが。複数人数で開発してると、
    「Gitでバージョン管理してるから大丈夫」みたいな流れになって、
    結局「誰も最新を知らない」(最新日付のものとは限らない)に、簡単に陥りますね。
    ※むしろ、そういう意味では、使用ツールにかかわらず、個人でやってるほうがよっぽどマシ。

    返信削除
    返信
    1. >納品システムのソースはすぐ取り出せるように
      なのでやっぱり、Gitとかで管理してても、最後は、
      ・サーバの納品フォルダを、zipで固めてバックアップ
      が、欠かせません。これが最強!です。

      削除
    2. >ソースがどこに行ったか判らなくなって大騒ぎ
      に「なったことがないソフト会社」を、私は知りません

      ぎょぎょマジですかwwwww
      激しく笑うww

      コミットについては、確かにコミット地獄は想像しちゃうんだけれど。ぎゃはー

      削除
    3. 「毎回」じゃないですよ、念のため。
      ※担当者が、ロクに引き継ぎもせずに「退職」(要するにバックレた)したプロジェクトは、
      数年たった後に、客からの問い合わせ等でこれが発覚することが多い、です。

      削除
    4. 思い出した。退職記念?に、
      「サーバのプロジェクトフォルダ毎」
      消してった人がいたなぁ・・・(実話ですよ。)

      (実は、開発あるある、かも知れないですが。)

      削除
    5. >数年たった後に

      システムは保守も仕事ですからね。
      製造業は生産終了でほぼほぼ手切れですけど。
      みずほ銀行はいろんなので地獄のようであと何人の頭取が交代したら気が済むのでしょう。

      >サーバのプロジェクトフォルダ

      ナイステロ

      削除
    6. >ナイステロ
      あー、同僚が、同じこと言ってましたね。
      「これは、完全にテロだ!」
      (まさに、「すべてを破壊し尽くす」という・・・)
      ※こういうのって、どう扱われるんでしょうね?訴えることできるんかな?
      私も、そのあとこの会社辞めちゃったので(フォルダは消してませんよw)
      その後どうなったかは、知りません。

      削除
    7. >訴えることできるんかな?
      こんなページがありました。
      http://www.forensic24.com/blog/forensics/20190330/152/
      退職者が勝手にデータ削除!?損害賠償請求は可能?
      ※まぁ、良くあることなんだろうな。つか、
      >不当な残業代請求
      よりも、「残業代踏み倒し(会社が払わない)」のほうが、多いんじゃないかな・・・
      こんなのでカネ取れるんなら、転職しようかな・・・とか思ったりして。

      削除
    8. なんつうか、system屋って人間的に泥臭くて、最澄空海や悪人正機説みたいなギリギリのラインで楽しそうですね。我ながら書いててイミフですが。他人の芝生かもですが。

      実は今日のビッグサイトでNEDOの物性系の展示が多かったけど、ああいうのは人間的な泥臭さが無くて平和だなと、ポカーンとしてるなと思っちゃいました。

      削除
  4. 私がソフト業界にいてわかったこと
    ・ソースが行方不明になって「大騒ぎになったことがないソフト会社」はない
    ・社員が突然「失踪したことがないソフト会社」はない
    ・プログラムが動かなくて「ユーザから訴えられたことがないソフト会社」はない
    ・納期が間に合わなくて「デスマーチになったことがないソフト会社」はない
    etc...

    ※こうしてあらためてみると、ソフト業界は「ブラック」以外の何物でもないな。

    返信削除
    返信
    1. これみて「あれぇ?アニメ業界?」って思っちゃったw とくに最後のが.

      「キャラが動かなくて視聴者から総スカン喰らったアニメ会社」あります.

      大企業のエレキ技術者は期待されてないから楽でいいや.

      削除
    2. >大企業のエレキ技術者
      '80~'90年代くらいの、まだ「活気があったころ」は、
      ・新商品開発で「死人の出ないプロジェクト」はない
      (まぁ、ホントに死んだ人は見たことないですが、入院した人は居ました。)
      なんて言われてた時期はあったのですがねぇ・・・(遠い目)
      ※この頃は、仕事も激務だったけど、その分、未来もあった(と思っていた)し、
      「働けば働くだけ」収入も上がっていったので、文句は誰も言ってませんでした。
      それに引き換え、今は、
      ・働いた量に収入が比例しない。(一番儲かるのは「詐欺師」かも!?)
      ・将来は、何も約束されていない。諦めムード
      ですからねぇ・・・ホントに日本は「衰退」してしまったかのようです。

      削除
    3. あの頃のエレキはメカと並んで重要でしたね.今じゃただのsystemの入れ物です.

      残業したらダメと法律で制限するなんて滅びでしかないです.
      弱者基準で労働基準を決めちゃうからおかしなことになるです.

      超ムカつくー

      削除