ページ「職業プログラマー」と「Apkファイル」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
imported>Administrator
 
imported>Administrator
 
1行目: 1行目:
'''職業プログラマー'''とは、[[プログラミング]]を行うことで賃金を得て、ご飯を食べている[[プログラマー]]のことである。
+
'''apkファイル'''('''a'''ndroid application '''p'''ac'''k'''age file, apk)とは、[[Google]]が提供する[[Android OS]]向けの[[アプリケーション]]および[[ミドルウェア]]の配布に用いる[[インストーラー]]形式の[[ファイル]]のことである。
通称'''PG'''。
 
  
日本では[[設計]]を[[システムエンジニア]]、[[実装]]([[コーディング]])を[[プログラマー]]が行うのが一般的となっている。
+
拡張子は「'''.apk'''」であり、MIMEタイプは「application/vnd.android.package-archive」となっている。
また、本当に[[設計書]]どおりに[[コーディング]]を行うだけの人を[[コーダー]]と呼ぶ。
 
さらに、その大多数が[[IT土方]]と呼ばれ、奴隷のような扱いであり出世も安定も得られないことが多い。
 
  
一方、北米などでは自分で[[設計]]したものは自分で[[実装]]することが一般的であり、[[システムエンジニア]][[プログラマー]]の境界がない。
+
apkファイルは[[Java]]で広く用いられる[[jarファイル]]の亜種で、[[プログラム]](.dexファイル)、各種[[リソー]]ス、[[証明書]]、およびマニフェストファイルなどを内部に保持している。jarファイルの亜種であり、jarファイルと同様に拡張子そこ違えど実態は[[zipファイル]]である。
また、天才プログラマーかつ狂暴な人は[[プログラマー]]ではなく[[チーフアーキテクト]]と呼ばれる。
 
[[設計]]および[[実装]]の両方をできない[[プログラマー]]は人間扱いされず、日本で言われる[[IT土方]]よりも更に酷い待遇となっているが、実績を上げ、昇格するといきなり王侯貴族のような扱いを受ける社会構造となっているため、その向上心たるや桁違いである。
 
  
== 職業プログラマーの待遇の変化 ==
+
== 内容物 ==
職業プログラマーは、かつては「20代で庭付き一戸建て現金払い」が当たり前と言われるほどの待遇であり、まるで王侯貴族のような扱いであった<ref>http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html</ref>。
+
apkファイルの中身は、通常以下のような[[ディレクトリ構造]]となっている。
 +
あくまで例であり、もう少し多い場合もある。
 +
* META-INFディレクトリ:
 +
** MANIFEST.MF: [[マニフェストファイル]]。[[jarファイル]]から継承したもので[[ファイル]]の説明が記述されている。後述するAndroidManifest.xmlとは別物である。
 +
** CERT.RSA: [[アプリケーション]]の[[証明書]]。
 +
** CERT.SF: 各種[[リソース]]の保存場所とその[[SHA-1]]ダイジェストの一覧
 +
*: 例:
 +
<pre>
 +
Signature-Version: 1.0
 +
Created-By: 1.0 (Android)
 +
SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
 +
...
 +
Name: res/layout/exchange_component_back_bottom.xml
 +
SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
 +
...
 +
Name: res/drawable-hdpi/icon.png
 +
SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
 +
</pre>
 +
* res: 各種[[リソース]]を格納する[[ディレクトリ]]([[アプリ]]が使う画像ファイルや音声ファイルなど)
 +
* AndroidManifest.xml:  [[Android]]の[[マニフェストファイル]][[アプリケーション]]の名称やバージョン、使用するアクセス権限などが書かれている[[XML]]形式のファイルである。
 +
* classes.dex: dexファイル形式のプログラム([[Dalvik仮想マシン]]用の[[中間コード]]である)。
 +
* resources.arsc: [[リソース]]のうち、各国語対応のための文字列リソースなど、個別ファイルにする必要のないものが[[xml]]形式で格納されている。
  
だが、近年では「低賃金」「無保障」「早期退職」などと冷遇され、土木作業員よりも遙かに薄給で、ビルがある限り仕事は無くならないビルメンよりも仕事の保障はされず、通称「[[IT土方]]」と呼ばれるほどに落ちぶれている。
+
なお、apkファイル内には[[xml]]形式のファイルが頻出するが、それらは基本的に[[難読化]]されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「[[apktool]]」という[[オープンソース]]で開発が行われているツールがある<ref>http://code.google.com/p/android-apktool/</ref>。
 
 
このような変化の原因としては、[[計算機]]はそこそこ使えるが、計算自体は自分で出来ない「なんちゃってプログラマー」の増加により、自分のお金の計算すらできない者が大多数を占めたことによるものだと言われている。
 
 
 
それに伴い「[[Write Once, Run Away]]」な[[システム]]も急激に増えている。
 
 
 
== 主な細分類 ==
 
職業プログラマーと一言でいっても業種ごとに業務内容も待遇も大きく異なっている。
 
* [[医療系システム]]
 
* [[勘定系システム]]
 
* [[組み込みプログラマー]]
 
* [[ゲームプログラマー]]
 
 
 
また、業種そのものではなく、特定企業間の繋がりを[[ドメイン]]([[インターネット]]でいう[[ドメインネーム]]ではない)と呼ぶこともある。
 
 
 
== 職業プログラマーの年収 ==
 
職業プログラマーの年収は基本的には業種(ドメイン)ごとに大きく異なる。
 
また、年収のみならず雇用条件全般も業種(ドメイン)ごとに大きく異なる。
 
 
 
一部では職業プログラマーの年収を[[プログラミング言語]]ごとに分類している資料もあるが、職業プログラマーの年収は[[プログラミング言語]]に依存するものではなく、あくまで業界(ドメイン)で決まるものである。
 
 
 
ただ特定ドメインが「異常に好む[[プログラミング言語]]」という物も存在するのも事実である。
 
 
 
たとえば素人に毛の生えたような[[プログラマー]]や[[デザイナー]]の世界では[[オワコン]]と言われる[[Flash]]([[ActionScript]])だが、主に広告業界などでは問題発生率が低くロスの少ないという理由でFlashが根強く生き残っている。そして広告業界自体の年収が高いため、その仕事を請け負う職業プログラマーの年収も比例して高い。
 
 
 
同様に、世間で[[コボラー]]と呼ばれる[[COBOL]]を主とする職業プログラマーも、そこに目新しさは無いものの、定時出退社、常識的な福利厚生、常識的な年収などと非常に安定した職を得ていると言われている。
 
 
 
=== 転職の重要性 ===
 
ここで勘違いする人が多いのが、年収の低い職業プログラマーが、年収の高い特定ドメインが好む[[プログラミング言語]]を覚えても無意味であるという点である。職業プログラマーの年収は業界(ドメイン)に依存し、同じ業界(ドメイン)にいる限りは待遇は基本的にかわらない。
 
 
 
つまり待遇の改善には「転職」をする必要がある。
 
 
 
=== 独立起業 ===
 
ここでさらに間違いを犯す人が多いのが独立起業で、年収の低い職業プログラマーから抜け出そうと独立起業するケースである。独立起業するも年収の低い業界(ドメイン)の繋がり(いわゆるコネ)しかないため失敗するケースが大多数を占める。
 
 
 
待遇改善は特定業界に入り込むパイプがないとどうにもならない問題であり、基本的にはまず転職をしてコネを作る必要がある。
 
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[IT土方]]
+
* [[Android]]
* [[システムエンジニア]]
+
* [[Mono for Android]]
* [[プログラマー]]
 
** [[日曜プログラマー]]
 
* [[Bjarne Stroustrup インタビュー]]
 
  
 
== 参考文献 ==
 
== 参考文献 ==

2012年7月3日 (火) 04:23時点における版

apkファイルandroid application package file, apk)とは、Googleが提供するAndroid OS向けのアプリケーションおよびミドルウェアの配布に用いるインストーラー形式のファイルのことである。

拡張子は「.apk」であり、MIMEタイプは「application/vnd.android.package-archive」となっている。

apkファイルはJavaで広く用いられるjarファイルの亜種で、プログラム(.dexファイル)、各種リソース、証明書、およびマニフェストファイルなどを内部に保持している。jarファイルの亜種であり、jarファイルと同様に拡張子そこ違えど実態はzipファイルである。

内容物

apkファイルの中身は、通常以下のようなディレクトリ構造となっている。 あくまで例であり、もう少し多い場合もある。

 Signature-Version: 1.0
 Created-By: 1.0 (Android)
 SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
 ...
 Name: res/layout/exchange_component_back_bottom.xml
 SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
 ...
 Name: res/drawable-hdpi/icon.png
 SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=

なお、apkファイル内にはxml形式のファイルが頻出するが、それらは基本的に難読化されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「apktool」というオープンソースで開発が行われているツールがある[1]

関連項目

参考文献

外部リンク