通常、Android スマートフォン/タブレットにアプリケーションをインストールするのに十分な内蔵メモリがない場合、メモリ カードをいくつかのセクションに分割する必要が生じます。 同様の操作を実行すると、たとえば microSD カードの 2 番目のセクションに移動して、携帯電話のスペースを解放できます。 以前、 と を使用してメモリカード上にパーティションを作成/結合する方法をすでに説明しました。
メモリカードのパーティショニングをサポートする特定の携帯電話/タブレットのリカバリを常に見つけることができるとは限らないため、この記事では、Android アプリケーション AParted を使用してこれを行う方法を説明します。
このアプリケーションは次の機能を提供します (公式ドキュメントより)。
- Android デバイスの外部/内部メモリのパーティション分割。
- Android デバイスの外部/内部メモリをフォーマットします。
- パーティションを削除しています。
- ファイル システム エラーをチェックして修正します。
- パーティションのサイズを変更します。
- ファイルシステムを更新しています。
この記事では、そのうちの最初のものだけを使用します。
張り込みの準備
分割処理中にメモリ カードからすべてのファイルが削除されるため、分割する前に必ず重要なデータ (写真、ビデオなど) のバックアップ コピーを作成してください。
これが携帯電話に存在することを確認してください。これがないと AParted は機能しません。
アプリケーションを起動する前に、Android の設定でメモリカードを無効にする必要があります。 これを行うには、「設定 > メモリ」に移動し、接続されている microSD カードセクションで「安全な取り外し」項目をクリックしてアクションを確認します。
将来のセクションのレイアウト
AParted アプリケーションを起動すると、[作成] タブにメモリ カードの 2 つのグラフィック表現が長方形の形で表示されます。「SD メモリ カード msdos パーティション テーブル」と書かれた下の長方形には現在のパーティション レイアウトが表示され、上の長方形には現在のパーティション レイアウトが表示されます。 1 つの「新しい msdos パーティション テーブル」 - microSD カード上の将来のパーティションのレイアウト。
「追加」ボタンをクリックして最初のセクションを追加し、スライダーを使用してそのサイズを指定します。 このセクションは、写真、音楽などの外部メモリとして携帯電話/タブレットで利用できます。 より正確な内訳を確認するには、MB の数値をクリックし、表示されるフィールドに正確なサイズをメガバイト単位で入力し、「OK」をクリックして変更を確認します。 「フォーマット」チェックボックスを有効にし、「fat32」ファイルシステムを変更しないままにしておきます。
「追加」ボタンをもう一度クリックして、microSD カードに 2 番目のパーティションを追加します。これは、将来、Android デバイスのシステム メモリの拡張として機能します。 スライダーを使用して残りのスペースをすべて選択し、「フォーマット」チェックボックスを有効のままにし、「fat32」の文字をクリックして、「ext2」、「ext3」、「ext4」のいずれかのファイル システムを選択します。
ここからが楽しみの始まりです。「ext4」オプションを選択することをお勧めしますが、このファイル システムにパーティションを作成できない理由はいくつかあります。Android システムのカーネル/ファームウェア、メモリーカードのクラス/メーカー(品質)など
したがって、実験して、最初に「ext4」、次に「ext3」、「ext2」でパーティションを作成してみてください。 結局のところ、Link2SD アプリは上記のファイル システムをすべてサポートしています。
上記の操作を実行すると、「新しい msdos パーティション テーブル」というラベルの付いた四角形に、メモリ カードの今後のパーティションのレイアウトが表示されるはずです。
張り込みの実行
新しいパーティションのレイアウトをメモリカードに適用するには、「適用」ボタンをクリックします。 AParted アプリケーションは、リムーバブル メディア上のすべてのデータが消去されることを警告します。
次に、メモリ カード パーティションのパーティション化とフォーマットのプロセスが表示され、完了すると、下のグラフ「SD メモリ カード msdos パーティション テーブル」にメディア パーティション化の結果が表示されます。 携帯電話/タブレットの「設定 > ストレージ」に再度移動し、外部メモリセクションで「SD カードを接続」をクリックします。 Android システムで microSD カードを接続して分析すると、メモリが設定したサイズまで減少していることがわかります。
携帯電話のステータスに SD カードが破損しているというメッセージが表示された場合は、Android システムを再起動します。再起動後、メモリ カードは自動的に接続されるはずです。
Link2SDのセットアップ
インストールして実行します。 プログラムはメモリ カード上の 2 番目のパーティションの存在を自動的に検出し、マウント スクリプトを作成するように要求します。 APartedアプリケーションでメモリカードをパーティション分割するときに指定した2番目のパーティションのファイルシステムをリストから選択し、要求を確認し、操作が完了したら、「デバイスを再起動」ボタンをクリックします。
Android システムを再起動した後、デバイスのメモリから外部メモリ カードの 2 番目のパーティションにアプリケーションを転送できます。
Dolphin は、という名前の仮想 SD カードにデータを保存できます。 SD.RAW。 デフォルトでは、128MB のサイズで作成されます。
仮想 SD カードは、Dolphin の自作アプリにとって重要な用途があります。 Project M とマリオカート Wii カスタム トラックは 2 つの良い例です。一部の自作アプリは、そのアプリが設計された実際のハードウェアの SD カードに保存されているファイルを使用してのみ動作するためです。
コンテンツ
仮想SDカードの作成
Project M などの大規模な自作アプリの場合は少なくとも 1 GB のサイズで作成することをお勧めします。実際のハードウェアの SDHC カードで実行しようとする一部の自作アプリには互換性の問題があるため、最適な互換性を得るには 2 GB 以下のサイズで作成することをお勧めします。 。
コマンドラインと実行可能ファイル
WinImage は、奇妙なことに、非同期やその他のいくつかの予期せぬ問題を引き起こすため、信頼性が高くありません。 ImDiskは大丈夫でしょう。
を使用して仮想 SD カードをマウントおよび編集するためのクイック ガイド ImDisk仮想ディスクドライバー:
- を右クリックします SD.RAWファイルをクリックしてから 「ImDisk仮想ディスクとしてマウント」コンテキストメニューから。
- チェックボックス リムーバブルメディアそれから殴る "わかりました"。 事前定義されたドライブ文字とその他のものはすべて問題なく動作します。
- 仮想 SD カードは「リムーバブル ディスク」として表示され、ネイティブ エクスプローラー ウィンドウで読み書きできるようになります。
- 仮想 SD カードの編集が完了したら、[リムーバブル ディスク] を右クリックして、[リムーバブル ディスク] をクリックしてマウントを解除します。 「ImDisk仮想ディスクのアンマウント」コンテキストメニューから。
- Dolphin で使用する前に、仮想 SD カードをマウント解除する必要があります。
ドルフィン設定
[オプション] > [設定...] > [Wii] > に移動し、有効にします。 SDカードを挿入します.
使用法
自作アプリを使う
自作アプリに使用される外部ファイルは、次の場所に保存する必要があります。 SD.RAWそして自作アプリ自体( boot.elfまたは ブートドール) Dolphin がロードするには、その外側に存在する必要があります。 たとえば、プロジェクト M は SD ルートからロードされます。 \プロジェクト\ Dolphin はプロジェクト M を起動する必要があります。 \apps\projectm\boot.elf, ない仮想SDカード内。 便宜上、仮想 SD カードの内部と外部に同じコピーを並列させることが理想的です。
ただし、Wii の自作エクスプロイトを使用して、仮想 SD カードから自作アプリを起動することは可能です。
Wii ゲーム ランチャー アプリは、特定の Wii ゲームがデフォルト ISO として設定されている場合にのみ機能します。 Dolphin ゲーム リスト内で、Wii ゲームのコンテキスト メニュー (右クリック) を開き、 デフォルト ISO として設定。 これは、Dolphin で自作アプリをロードする前に行ってください。
ネットプレイ用
クローン化されていない仮想 SD カードを何かが読み取った場合、作成されたサイズが同じであっても、ルート内のファイル/フォルダー構造が同一であっても、Netplay は最終的に同期を解除します。 それを防ぐために、 SD.RAWネットプレイを開始する前に、ホストのコンピュータから参加者のコンピュータにコピーする必要があります。 仮想 SD カードがオフラインまたは書き込みブロックを無効にしてオンラインで使用された場合、MD5 チェックサムは変更されます (仮想 SD カードで異なるのはファイルの「アクセス日」です) が、同期解除は発生しません。他の場所から来たものであるか、「異なる」ように内部で変更されたファイルの影響を受けています。
Wii ゲーム ランチャー アプリの場合、前のセクションで説明したように、両端のユーザーは、まず自作アプリとゲームの同じコピーをゲーム リストに含めてから、ゲームをデフォルト ISO として設定する必要があります。
このツールを使用すると、携帯電話またはタブレットの SD カード/USB ドライブ上にパーティションを作成および管理できます。 スワップ パーティションを作成することで、デバイスに RAM を追加できます。 破損した SD カード ファイル システムを修復することもできます。 「メイン」パーティション タイプのみをサポートします。
機能:
- パーティションの作成。
- パーティションの削除。
- 破損したファイルシステムの回復。
サポートされているファイル システム:
- FAT16、FAT32、EXT2、EXT3、EXT4、SWAP、NTFS (MoalBoal バージョン以降)。
要件:
- ルート電話。
- Busybox の可用性。
- 内部メモリへのインストール。
- アプリケーションの操作を開始する前に、SD カードを取り外してください。
プログラムを使用してパーティションを作成する方法の説明
まず最初に、すべての貴重なファイルをフラッシュ ドライブから PC に転送します。つまり、その後、フラッシュ ドライブからすべてが削除されます。
- プログラムを開きます
「作成」セクションで、プラス記号「+」をダブルクリックします。
最初のセクション「パート 1」では Fat32 を選択し、2 番目の「パート 2」では目的の ext2/3/4 またはスワップを選択します。
- スライダーを使用して各セクションのサイズを設定します。「形式」チェックボックスをオンにする必要があります。
「OK」を確認します
すべて準備が整いました。
フラッシュドライブをフル容量に戻す方法
フラッシュ ドライブから 2 番目のパーティションを削除する場合は、これを実行できます。
- 電話の設定、「メモリ」に移動し、「SD カードの削除」をクリックします。
- プログラムを開きます
- [作成] セクションで、プラス記号「+」を 1 回クリックします。
- 「パート 1」で Fat32 を選択し、スライダーをフラッシュ ドライブの全容量に設定し、「フォーマット」チェックボックスをオンにする必要があります。
ソフトキー、「変更を適用」をクリックします
競技用アプリケーションの開発中に、データベース ストレージの問題が発生しました。 問題は、外部メモリカードをどのように識別するかでした。 一般に、インターネットで検索しても正確な答えは得られません。 したがって、見つかったすべての結果を組み合わせて、クラスを組み立てました。 興味のある人はカットの下を見てください。
それでは、理論から始めましょう。
用語
Google によれば、次のような概念があるとのことです。- 内部 ( 内部) メモリは、電話機に組み込まれているメモリ カードの一部です。 デフォルトで使用すると、アプリケーション フォルダーは他のアプリケーションによるアクセスから保護されます (内部ストレージを使用)。
- 外部の ( 外部の) メモリは一般的な「外部ストレージ」です。 これは、内蔵メモリの一部である場合もあれば、取り外し可能なデバイスである場合もあります。 通常、これは内蔵メモリの一部ですが、私が最後にデバイスが取り外されているのを見たのは Android 2.2 で、内蔵メモリは約 2GB で、接続されたメモリは外部メモリになりました (外部ストレージの使用)。
- 削除されました ( 取り外し可能な) メモリ - 「外科的」介入なしでデバイスから削除できるすべてのストレージ。
KitKat 4.4 より前のバージョンでは、API には外部メモリ パスを取得する機能が提供されていませんでした。 このバージョン(API 19)から、公開抽象ファイル関数が登場しました get外部ファイルディレクトリ(文字列型)。内部および外部メモリへのパスを含む文字列の配列を返します。 では、スロットに挿入されている SD カードはどうなるのでしょうか? またしてもそこへの道を見つけることができません。
検索結果
この質問に答えるために、私は全知の Google に頼りました。 しかし、彼も明確な答えはくれませんでした。 外部メモリにつながる標準関数の使用から、ストレージ デバイスの取り外しとは何の関係もないもの、処理デバイスのマウント ルール (Android は Linux カーネル上で実行されるもの) まで、多くの定義オプションが検討されました。 後者の場合、デバイスがマウントされているフォルダーへの「固定された」パスが使用されました (このディレクトリはバージョンによって異なります)。 マウント規則はバージョンごとに変わることを忘れないでください。最終的に、私はこれまでに得た知識をすべて組み合わせて、外部デバイスや削除されたデバイスへのパスを返すことができる独自のクラスを作成することにしました。
コードの説明
クラスが作成されました マウントデバイスこれには、デバイスへのパス、デバイス タイプ、ハッシュが含まれます。デバイスには 2 種類あります (システム API を通じてアクセスできるため、内部メモリには触れませんでした)。
パブリック列挙型 MountDeviceType ( EXTERNAL_SD_CARD 、 REMOVABLE_SD_CARD )
そしてクラスが作成されました ストレージヘルパー、使用可能なメモリ カードを検索します。
StorageHelper クラスは、システム環境 ( 環境) および Linux ユーティリティを使用する マウント、むしろその実行の結果です。
方法 1 - 環境
環境を操作するときは、標準の getExternalStorageDirectory() 関数を使用して外部メモリに関する情報を取得します。 削除されるメモリに関する情報を取得するには、環境変数「」を使用します。 二次記憶装置".外部メモリは常に 1 つで、通常は常に存在するため、可読性をチェックし、ハッシュを計算して記憶します。 削除するメモリが大量になる可能性があるため、結果の文字列を区切り文字で分割し、それぞれの値を確認する必要があります。
関数 fillDevicesEnvirement
文字列パス = android.os.Environment.getExternalStorageDirectory() .getAbsolutePath(); if (!path.trim().isEmpty() && android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) ( testAndAdd(path, MountDeviceType.EXTERNAL_SD_CARD); ) // リムーバーを取得します文字列 rawSecondaryStoragesStr = System.getenv("SECONDARY_STORAGE"); if (rawSecondaryStoragesStr != null && !rawSecondaryStoragesStr.isEmpty()) ( // すべてのセカンダリ SD-CARD を配列に分割 Final String rawSecondaryStorages = rawSecondaryStoragesStr .split(File.pathSeparator); for (String rawSecondaryStorage: rawSecondaryStorages) ( testAndAdd(rawSecondaryStorage, MountDeviceType.REMOVABLE_SD_CARD); ) )
解決策は stackoverflow から取得されました。 答えはその下のどこかにあります。
方法 2 - マウント
長い間、削除されるメモリへのパスをシステムに教えてもらえなかったため、マウントされているデバイスの方向に目を向けることにしました。 システムには、外部デバイスのマウントに関するルールを記述した構成ファイルがあります。 すべて問題ありませんが、Android バージョン 4.* では単なる人間はこのファイルにアクセスできないため、この方法は検討しません。マウント ユーティリティに戻りましょう。 パラメータを指定せずにコマンドを実行すると、マウントされたファイル システムのリストが返されます。 削除されるデバイスは通常、FAT ファイル システム形式であるため、「」という特徴を含む行が強調表示されます。 脂肪"。外部メモリはパラメータによって特徴付けられます" ヒューズ".
注: この方法を使用する場合、マウントされたデバイスのタイプが常に正しく決定されるとは限りません (おそらく、何かを考慮していなかったでしょう)。 Android のバージョンが異なると違いがあることに気付きました。 したがって、この方法は追加の方法として使用できます。
fillDevicesProcess 関数
try ( Runtime runtime = Runtime.getRuntime(); proc = runtime.exec("mount"); try ( is = proc.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); while ( (line = br.readLine()) != null) ( if (line.contains("secure")) 継続; if (line.contains("asec")) 継続; if (line.contains("fat") ) (// TF カード String columns = line.split(" "); if (columns != null && columns.length > 1) ( testAndAdd(columns, MountDeviceType.REMOVABLE_SD_CARD); ) ) else if (line.contains("ヒューズ")) (// 内部(外部) // ストレージ String columns = line.split(" "); if (columns != null && columns.length > 1) ( // mount = mount.concat(columns + " \n"); testAndAdd(columns, MountDeviceType.EXTERNAL_SD_CARD); ) ) ) )finally ( ... ) ) catch (Exception e) ( ... )
クラス全体のソース コードはまだどこにも見つかりません。 そのうち、gitHub に投稿してみます。
他に誰がどのような方法を使用しますか?
タグ: タグを追加する
一部の Android デバイスには、メモリ カード (通常は microSD フォーマット) 用のスロットがあります。 デバイスが SD カードをサポートしている場合は、次のことができます。
- メモリ容量を増やす。
- 一部の機能やアプリケーションでカードを使用します。
デバイスに SD カード スロットがあるかどうかを確認するには、製造元の Web サイトにアクセスしてください。
注記。これらの手順の一部は、Android 6.0 以降を実行しているデバイスでのみ実行できます。
SDカードの取り付け方法
ステップ 1: SD カードを挿入します。- SDカードスロットの位置を確認してください。
- 携帯電話の電源を切ります。
- SD カード トレイを取り外すか、デバイスの背面カバーを取り外します (モデルによって異なります)。 必要に応じて、カードを保持しているタブを持ち上げます。
- SD カードをスロットに置きます。 保持タブを上げた場合は下げます。
- SD カード トレイまたはデバイスの背面カバーを再度取り付けます。
- SD カードの通知が表示されるまで待ちます。
- クリック 曲.
- 目的のストレージの種類を選択します。
- 取り外し可能なストレージ:
カードをすべてのファイル (写真や音楽など) とともに別のデバイスに転送できます。 アプリケーションをリムーバブル ドライブに移動することはできません。 - 内部記憶:
カードには、そのデバイスのアプリとデータのみを保存できます。 別のデバイスに移動すると、そのデバイス上のすべてのデータが削除されます。
- 取り外し可能なストレージ:
- 画面上の指示に従って SD カードをセットアップします。
- 完了したら、クリックします 準備ができて.
SDカードの使い方
アプリをSDカードに移動する方法カードを内部ストレージとして接続している場合は、アプリケーションをカードに転送できます。
注記。すべてのアプリケーションを SD カードに転送できるわけではありません。
ファイルをSDカードに移動する方法SD カードをリムーバブル記憶装置としてインストールしている場合は、音楽や写真などのさまざまなファイルを SD カードに転送できます。 その後、デバイスの内部メモリから削除できます。
ステップ 1: ファイルを SD カードにコピーします。
ステップ 2: 内部ストレージからファイルを削除します。
SD カードの内容を表示して、空き容量を確認できます。
SDカードを内部ストレージとして使用する場合
SDカードをリムーバブルストレージデバイスとして使用する場合
- 画面の上部から下にスワイプして通知パネルを開きます。
- SD カードの通知の下で、 をタップします。 開ける.