こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PCでスマホやiPhoneのアプリが使えない理由?

PCでスマホやiPhoneのアプリが使えないのはなぜでしょうか?また、使えるようにするためにはどうすればよいのでしょうか?どなたか詳しい方教えてください。

投稿日時 - 2013-04-28 11:19:36

QNo.8063105

困ってます

質問者が選んだベストアンサー

質問自体が、なんでOSが違うと動かないのか?と言っているのと同じだと思いますけどね。
WindowsやMacのユーザーはOSが違うから動かないという概念を持っているかもしれませんが…
LinuxやFreeBSDのユーザーだと、あまりそういう感覚がありません。

より単純に、APIやライブラリーが揃わないから…とかそういう理由を挙げるでしょう。

GIMPは、有名な画像処理のツールだと思いますが、これはOSが違っても
Windows,MacOSX,FreeBSD,Linux,OS/2などで動いたりしています。

これはオープンソースソフトウェアであるがゆえに、必要と感じた人が
自分が使いたいOS環境で動くように、移植作業を行なった成果です。


これはOSの違いだけでなく、CPUのアーキテクチャーの違いも乗り越えます。
WindowsRTでは、ストアアプリしか動かないという話がありますが…
これは、ARMのCPUの問題ではなく、単なるMicrosoftの方針か限界です。

実際に、Android端末にUbuntuなどのOSを導入した事例では
ARMのCPUで、GIMP,LibreOffice,Scribusなどたいていのものが動いています。


では、なぜAndroidでは動かないのか?
同じLinuxカーネルをコアとするAndroidとUbuntuで、なぜ事情が違うのか?

それは、そこに整っている環境が大きく違うからです。


Androidの場合は、アプリはDalvik仮想マシンの上で動いています。
WindowsはNTカーネルの上でWin32APIやWinRTAPIなどのAPIが提供されています。
.NETフレームワークも、そういった環境のひとつですし、FLASH Playerも含めてもいいかもしれません。

これらには、まったく互換性が無いのですから、動かないのがあたりまえです。
転職したのに、前の職場の休日届けを総務に出しても突っぱねられるでしょ?

CPUの違いは、日本の会社に英語で申請するくらいに論外ですが…
CPUが同じでも、同じ言葉でも、その書式形式の違いで、要望は通らない…だから動かないのです。
(Dalvik仮想マシンはCPUの違いを吸収するために、Androidのために設計されました)

オープンソースのソフトウェアであれば、その形式の違いを修正し、同じ言葉に変換した上で
異なる環境で動くようにすることもできます。


でも、AndroidやiPhone向けのソフトの多くはプロプライエタリーソフトウェアで…
簡単に言えば、開発者がPCで動くようにしようとしないのであれば、第三者が介入することができません。


一応は、Android用ソフトを開発するために
WindowsやLinuxの上で、Dalvik仮想マシンを動かすことはできます。
ただ、実用的な速度で安定して動くのかといえば、そういうわけでも無いようです。


逆にAndroidの上で、QtやgtkやX Window Systemを動かすことは困難です。
だから、同じCPUと同じカーネルでも、UbuntuのソフトをAndroidで動かすことは現実的ではありません。

ただ、管理者権限を得て、大きなリスクのもと、大幅なカスタマイズをすれば
Android端末に、Ubuntuなどのデスクトップ向けLinuxや、サーバー向けLinuxを動かすこともできます。

実際に、そんなことをやる酔狂な人が、あまりにも少ないというだけです。


iPhoneの場合も、iOSの根幹はMacOSXと共通の部分がありますが
OSXのオープンソースの部分はともかく、Appleが権利を持っている部分については
iPhoneやiPadに組み込む方法が提供されておらず、Mac用ソフトはiPhoneでは動かせません。

CPUがIntelとARMという違いを持っていることも重要です。


逆に、質問にあるiPhone用のソフトがPCで動かないのは
iOSのApple社が権利を持っている部分が、非公開であるがゆえに
PC上で動かす方法が無い。また同等の代替環境を作ることも困難なのです。
もちろん、iOS向けアプリの開発者がPC用を作らないことも大きな理由です。

技術的な問題というよりも、単に
開発者がやらないからできないというのが現実です。

逆に、実現のコストに見合う利益が無いから、開発者ができないというのも現実です。
スマフォ用の、マンガやアニメや芸能人に関わるアプリについては
開発元がそれらの権利元との契約上、スマフォ用としてしか作れないという場合もあるでしょう。

投稿日時 - 2013-04-28 22:37:35

お礼

詳しい説明ありがとうございます。

投稿日時 - 2013-04-29 05:36:22

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

色々と詳しく説明すると、とても難しくなりますので、
端折って説明するとすれば、
PCやAndroidスマホやiOSスマホ(iPhone)では
それぞれ理解できる言語が違うという事です。
日本語しか判らない人に英語で話しかけても
言葉が通じないのと全く同じ意味だと考えれば良いです。

投稿日時 - 2013-04-29 01:05:09

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:33:27

ANo.7

iOS版アプリはMacOSの本体違いとして開発環境が配られているので
(マイコンの中身が別で、アプリを動かすには意味を伝える為のソフト一式ごと、
用意を入れ替えて使う、という負担がいります。
紙の箱を作るのに、木材をくだいたパルプで洋紙を漉いて用意するのか、
和紙の楮こうぞ、サトウキビを搾ったバガスパルプで紙を漉くのが、的な差です)
Macブランドの本体だと、自分で作ったiOSアプリを試すことができます。
今有るiOSアプリをiTunesからMacで貰ってくることは無理です。

アップル日本語、Xcode と iOS SDK のダウンロード、配布手段の説明ホーム
https://developer.apple.com/jp/ipad/sdk/

アンドロイド版アプリは実際使う手は有りますが、ちょっと難しいです。
アンドロイドの中身のマイコン自体は複数ブランドで供給されていて
スマッチャ、2011年2月記事
いろいろありすぎて分からん!!最新のモバイル向けCPUをまとめてみました。
http://smarter-jp.net/newsetc/17677/

パソコングラフックのGeForceを持つNVIDIAも供給していますが、
そのライバル品RADIONや、インテルでないPCプラットフォームを持っている会社
が、ブルーステークスという「アンドロイドのエミュレータ」を支援して、
その普及含め自社の高機能部品入りパソコンメーカーを販売促進しています。

AMDジャパン、AMD AppZone日本語サイトを開設
http://www.amd.com/jp/press-releases/Pages/amd-appzone-brings-2012sept27.aspx
AMD AppZone
http://www.amd.com/jp/vision/shop/cool-apps/Pages/cool-apps.aspx

ブルーステークス、英語ベータ版としての扱いだが
ウィンドウズ7/Vista/XP用、SuefacePro限定Win8用、MacOS用あり
http://www.bluestacks.com/

ウィンドウ表示動作中の導入アプリ一覧画像を添付してみますが、
AMD AppZone 日本語版は一応インテルだけのパソコンでも動作します
(3Dゲームが何とか動く程度な性能と、各種ランタイム導入設定は必須)
配布アプリのファッション分類にプリセットされたZOZOTOWNアプリが、
アップデート取得出来ないものの商品データ読み込んで回遊できたり、
GooglePlayStoreから「NHK時計」を取得動作させる事まで確認できました。

投稿日時 - 2013-04-28 12:59:29

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:37:56

ANo.6

1.OSが異なります
OSが違えば動作するプログラムが違います
2.CPUが違う
CPUの命令に互換性が無ければOSが同じでも同じプログラムは動きません
3.ハードウエア(デバイス)が違う
デバイスを制御するプログラム(ドライバー)が異なります
グラフィックやサウンドの命令や機能にiPhonにはあるがスマホには無いとなると正しく機能しません

これらをクリアしないと動きません。
いってみればPS3でwiiやXBOXのゲームを動かすようなものです。

投稿日時 - 2013-04-28 12:50:11

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:38:37

ANo.5

CPUが違う、ハードが違う、OSが違う。

CPUが違えば、バイナリコードの解釈が異なりますので、同じプログラムモジュールを動作させても、正常に動く道理がありません。
ハードが違えば、周辺回路の動作ロジックが異なり、たとえプログラムがCPUで同じように処理されたとしても、周辺回路を正しくコントロールすることが出来ません。
最後に、OSと言うのは、ハードに違いをある程度吸収するためのものですが、その為には、そのOS独自のプログラムの組み方というのがあるのですが、当然、OS毎に、そのスタイルは異なってきますので、OSが異なれば、同じロジックで作られたプログラムモジュールでも、同じ動作をすることはありません。まぁ、違うOS用に作られたプログラムが、正常な動作をすることはありません。

そういったことを踏まえて、動作させようと思えば、それぞれの違いを吸収するプログラム上で動かすと言うことになります。これがいわゆる、エミュレータというものです。まぁ、完全に同じ動作をするわけではありませんので、用途は限定的にならざる終えませんが…

投稿日時 - 2013-04-28 11:55:44

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:39:55

ANo.4

スマホってスマートフォンの略であり、スマートフォンってiPhoneって呼ばれるApple社が作っている携帯電話も含まれますけどね
iOS用のスマートフォンアプリで、iPhoneで使えないとすればOSのバージョンが違うか、Apple社が配布を認めていないから。 

WindowsとLinuxとUnixはすべてOSが異なります
よって、OSが異なりますから動作しません

LinuxやUnixでも、それぞれOSの仕様が異なりますから動作しません
よって、動作させるには、それぞれの環境をエミュレートさせて動作させるしかないでしょう

開発環境を持っている人なら、ある程度エミュレート出来るので、作れる場合があります。
ただし、実際環境と異なるので、必ずしも動作するという物ではありません

投稿日時 - 2013-04-28 11:51:06

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:41:34

ANo.3

OSが異なるので・・Mac用やUNIX用のソフトがWindowsで使えないのと同じ。
オープンソースでソースが公開されていたりするとWindows用にコンパイルしなおすとか、javaなど仮想OSで動くものを探すとか・・

投稿日時 - 2013-04-28 11:42:14

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:42:06

ANo.2

基本ソフトのOSが違うから。

PCはWindows、スマホはAndoroid、IiPfoneはiOS。

投稿日時 - 2013-04-28 11:30:50

ANo.1

プログラミングって言葉を知っていますか?

iPhoneとPCやAndoroidでは、その内容が違うので動きません。

プログラムの内容を両方で使えるように書き換えれば、使えるようになります。
そんな知識も技術も無いでしょうから、あなたには出来ません、それが出来るようにするソフトもありませんし。

投稿日時 - 2013-04-28 11:25:19

お礼

お返事ありがとうございます。

投稿日時 - 2013-04-29 05:43:23

あなたにオススメの質問