1. Manifest๋?
๋ชจ๋ ์ฑ ํ๋ก์ ํธ๋ ํ๋ก์ ํธ ์์ค ์ธํธ์ ๋ฃจํธ์ AndroidManifest.xml ํ์ผ์ด ์์ด์ผ ํ๋ค.
๋ฉ๋ํจ์คํธ ํ์ผ์ Android ๋น๋ ๋๊ตฌ, Android ์ด์์ฒด์ ๋ฐ Google play์ ์ฑ์ ๊ดํ ํ์ ์ ๋ณด๋ฅผ ์ค๋ช ํ๋ค.
๋งค๋ํ์คํธ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ(์กํฐ๋นํฐ, ์๋น์ค, ์ฝ์ฒธ์ธ ๊ณต๊ธ์, ๋ธ๋ก๊ทธ์บ์คํธ ์์ ์) ์ ๋ํ ๋ ธ๋๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ์ธํ ํธ ํํฐ(Intent Filter)์ ๊ถํ(Permission) ์ ์ฌ์ฉํด ์ด๋ค์ด ๋ค๋ฅธ ์ปดํฌ๋ํธ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
๋ํ, ์ ํ๋ฆฌ์ผ์ด์ ๋ฉํ๋ฐ์ดํฐ(์์ด์ฝ์ด๋ ํ ๋ง๋ฑ์)๋ฅผ ์ง์ ํ๊ธฐ ์ํ ์์ฑ์ ๋น๋กฏํด, ๋ณด์ ์ค์ ๊ณผ ๋จ์ ํ ์คํธ์ ์ฌ์ฉ๋ ์ ์๋ ์ถ๊ฐ์ ์ธ ์ต์์ ๋ ธ๋ ์ญ์ ์ ๊ณตํ๋ค.
2. ๊ฐ๊ฐ์ Tag๋ค์ ์๊ธฐ์ ์์์ผํ ๊ฒ!
2-1. xml์์ Node๋ผ๋ ๊ฒ์ ๋ํ ๊ฐ๋ !
: XSLT processor๋ xml ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ์๋ณธ ๋ฌธ์๋ฅผ tree model์ instance๋ก ์ฌ๊ตฌ์ฑํ๋ค. ์ด ๋ ์๊ธฐ๋ ๋ฟ ๋ฆฌ, ๊ฐ์ง, ์์ผ๋ก ๋น์ ๋์ด์ tree๋ฅผ ๊ตฌ์ฑํ๋ element, attribute, text, comment ๊ฐ์ ๊ฐ๊ฐ์ component๋ฅผ node ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main2Activity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
</activity>
</application>
</manifest>
2-2. xml Parser๋?
: ์์ ์ฝ๋๋ธ๋ญ์ ๋ณด๋ฉด, ๋ค์ฌ์ฐ๊ธฐ ๋๋ถ์ code๋ฅผ ๋ณด๋๋ฐ ๋ฌด๋ฆฌ๊ฐ ์๋ค. ๋ง์ฝ ๊ณต๋ฐฑ์ด๋ ๋ค์ฌ์ฐ๊ธฐ ๋ฑ์ด ์์ด ์ฐ์ฌ์๋ค๋ฉด, ์์๋ณด๊ธฐ๊ฐ ํ๋ค ๊ฒ์ด๋ค.
๋ง์ฝ ์ผ๋ ฌ๋ก ๋์ด๋ code ์ค์์ ํ์ํ data๋ฅผ ๊ฐ์ ธ ์ค๋ผ๊ณ ํ๋ค๋ฉด ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ถ๋ ค๋ผ๊น? ์ด๋ฅผ ์ํด์ data๋ฅผ object๋ก ๋ง๋ค์ด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ๊ทธ ์ญํ ์ ํ๋ ๊ฒ์ด XML Parser์ด๋ค.
๊ทธ๋ฆฌ๊ณ xml parser๊ฐ ๋ง๋ object๋ฅผ xml์์๋ node๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ ์ด๋ค.
xml Parser๊ฐ parsing์ ํ๊ณ ๋๋ฉด tree ํํ์ ๋ ธ๋๊ฐ ์๊ธฐ๊ฒ ๋๋ฉด ๊ฑฐ๊ธฐ์๋ XSLT๋ฅผ ๋น๋กฏํ application์์ ์ด์ฉํ ์ ์๋ ์ค์ํ ์ ๋ณด๋ค์ด ๋ด๊ฒจ ์๊ฒ ๋๋ค. ๋ํ์ ์ธ ์์๋ก,
- Node๋ฅผ ์ผ๊ณฑ ๊ฐ์ง type(root, element, attribute, textual, comment, processing-instruction, namespace)์ผ๋ก ๊ตฌ๋ถํด์ ์ ํ(select)ํ์ฌ match ์ํค๊ฑฐ๋ processing ํ ์ ์๋ค.
- ์๊ณ(hierachy)๊ฐ ์๊ธฐ๋ฏ๋ก์ (root)๊ฐ ์๊ธธ ๊ฒ์ด๊ณ , ๋ถ๋ชจ(parent)์ ์์(child), ๋ ๋์๊ฐ์๋ ์กฐ์(ancestor)๊ณผ ์์(descendant)์ ๊ด๊ณ๊ฐ ํ์ฑ๋๋ฏ๋กํด์ ์๋์ ์์น๋ก ํ์ํ node๋ฅผ ์ ํ(select)ํ์ฌ match ์ํค๊ฑฐ๋ processing ํ ์ ์๋ค.
- Source document์ node๋ค์ indexing(๋ฒํธ ๋งค๊ธฐ๊ธฐ)ํด ์ฃผ๊ธฐ ๋๋ฌธ์ node์ ์์น(position), ๊ฐ์(count), ์ด๋ฆ(name)๋ฑ์ ์ ํ(select)ํ์ฌ match ์ํค๊ฑฐ๋ processing ํ ์ ์๋ค.
↓๋ ธ๋๋ก ๋๋์ด์ ํ์๋ฅผ ํด๋ณด๋ฉด,(์์น ํ block ํ๋ํ๋๋ค์ด ๋ ธ๋๋ค)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main2Activity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
</activity>
</application>
</manifest>
- node type์ผ๋ก๋ ์๋์ ๊ฐ์ด ์๋ค.
( Root node / Processing-instruction node / Comment node /
Element node / Attribute node / Textual node )
2-3. Root node?
: element๊ฐ ์๋๋ฉฐ, ๋ฌธ์์์ ์ต์์ element ๋ณด๋ค ์์์ ์๋ document ์์ฒด์ด๊ณ , ๋ฌธ์๊ฐ ์์ฑ๋๋ฉด ์๋์ผ๋ก ์๊ธฐ๊ฒ ๋๋ ๊ฒ.
3. Manifest ๋ด์ ๊ฐ ํ๊ทธ ์กฐ์ฌ
โ Manifest
ํฌํจํด์ผ ํ๋ ํญ๋ชฉ - <applicaton>
ํฌํจ ๊ฐ๋ฅํ ์์ - <compatible-screens>, <instrumentation>, <permission>, <permission-group>, <permission-tree>,<supports-gl-texture>, <supports-screens>, <uses-configuration>,<user-feature>,<user-permission>,<uses-permission-sdk-23>,<uses-sdk>
: manifest ํ๊ทธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ปดํฌ๋ํธ, ๋ณด์ ์ค์ , ํ ์คํธ ํด๋์ค๋ฅผ ์ ์ํ๋ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ค.
โ Application
ํฌํจ๋ ์์ - <manifest>
ํฌํจ ๊ฐ๋ฅํ ์์ - <activity>,<activity-alias>,<meta-data>,<service>,<receiver>,<provider>,<uses-library>
: application ์ ๋ํ ๋ช ์ ๋ถ๋ถ์ด๋ค. ์ด ์์๋ sub์์๋ฅผ ํฌํจํ๋ค.
Sub ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ๊ตฌ์ฑ์์๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ๊ตฌ์ฑ์์์ ์ํฅ์ ์ค์์๋ ์์ฑ์ ๊ฐ์ง ๊ฒ์๋งํ๋ค.
์ด ์ฌ๋ฌ ์์ฑ(icon, label, permission, process, taskAffinity,allowTaskReparenting)์ด ๊ตฌ์ฑ์์์ ํด๋นํ๋ ์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ . ๊ทธ ์ธ์ ์์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ์ ์ฒด์ ์ผ๋ก ์ค์ ํ๋ฉฐ ๊ตฌ์ฑ์์๋ณ๋ก ์ฌ์ ์ ํ ์ ์๋ค.
โ Activity
ํฌํจ์์น -<application>
ํฌํจ๊ฐ๋ฅํญ๋ชฉ -<intent-filter>, <meta-data>, <layout>
: activity ํ๊ทธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ๋ณด์ฌ์ง๋ ๋ชจ๋ ์กํฐ๋นํฐ์ ํ์ํ๋ฉฐ, android:name ์์ฑ์ผ๋ก ํด๋์ค ์ด๋ฆ์ ์ง์ ํ๋ค. ๋งค๋ํ์คํธ์ ์ ์๋์ง ์์ ์กํฐ๋นํฐ๋ฅผ ์์ํ๋ ค ํ๋ฉด ๋ฐํ์ ์์ธ๊ฐ ๋์ ธ์ง ๊ฒ์ด๋ค. ๊ฐ ์กํฐ๋นํฐ ๋ ธ๋๋ ๊ทธ ์กํฐ๋นํฐ๋ฅผ ๋์ธ ์ธํ ํธ๋ฅผ ์ง์ ํ๋ intent-filter ์์ ํ๊ทธ๋ฅผ ์ง์ํ๋ค.
:์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ ์ ํ ์ด์ ๊ณ์ธต. ๋ชจ๋ ํ๋ฉด์ activityํด๋์ค์ ํ์ฅ์ด ๋๋ค. activity๋ ๋ทฐ๋ฅผ ์ฌ์ฉํด ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ฌ์ฉ์ ์ก์ ์ ๋ฐ์ํ๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํ์ฑํ๋ค. ๋ฐ์คํฌํฑ ๊ฐ๋ฐ์ ์ ์ฅ์์ ๋ณผ๋ ์กํฐ๋นํฐ๋ ํผ๊ณผ ๊ฐ๋ค.
โ Intent-filter
ํฌํจ๋ ์์ - <activity> <activity-alias> <service> <receiver>
ํฌํจํด์ผ ํ๋ ์์ - <action>
ํฌํจ ๊ฐ๋ฅํ ์์ - <category> <data>
: activity, service, broadcast receiver๊ฐ ์๋ตํ ์ ์๋ ์ธํ ํธ์ ์ ํ์ ์ง์ ํ๋ค. ์ธํ ํธ ํํฐ๋ ์์ ๊ตฌ์ฑ์์์ ๊ธฐ๋ฅ, ์ฆ activity๋ service๊ฐ ํ ์ ์๋ ์์ ๊ณผ reciver๊ฐ ์ฒ๋ฆฌํ ์ ์๋ boradcast์ ์ ํ์ ์ ์ธ. ์ ๋ฌ๋๋ ์ ํ์ ์์ ์ธํ ํธ๋ก ๊ตฌ์ฑ์์๋ฅผ ์ด๊ณ ์ด ๊ตฌ์ฑ์์์ ์ ์๋ฏธํ์ง ์์ ์ธํ ํธ๋ฅผ ํํฐ๋งํ๋ค.
โ Action
ํฌํจ์์ - <intent-filter>
: ์ธํ ํธ ํํฐ์ ์์ ์ ์ถ๊ฐํ๋ค. <intent-filter> ์์์ <aciton>์์๊ฐ ํ๋ ์ด์ ํฌํจ๋์ด์ผ ํ๋ค.๋ง์ฝ ์ธํ ํธ ํํฐ์ <action>์์๊ฐ ์์ผ๋ฉด ํํฐ๊ฐ Intent ๊ฐ์ฒด ํ์ฉํ์ง ์๋๋ค.
โ Category
ํฌํจ๋ ์์ - <intent-filter>
: ์ธํ ํธ ํํฐ์ ์นดํ ๊ณ ๋ฆฌ ์ด๋ฆ์ ์ถ๊ฐํ๋ค.
โ activity-alias
ํฌํจ๋ ์์ - <application>
ํฌํจ๊ฐ๋ฅํ ํญ๋ชฉ -<intent-filter>,<meta-data>
: activity์ ๋ณ์นญ์ผ๋ก, targetActivity ์์ฑ์์ ์ด๋ฆ์ด ์ง์ ๋๋ค. ํ๊ฒ์ ๋ณ์นญ๊ณผ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ด์ผ ํ๋ฉฐ manifest์์ ๋ณ์นญ๋ณด๋ค ๋จผ์ ์ ์ธ๋์ด์ผ ํ๋ค.
โ Service
ํฌํจ๋ ์์น - <application>
ํฌํจ๊ฐ๋ฅํ ํญ๋ชฉ -<intent-filter>,<meta-data>
:์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ด์ง ์๋ ์ผ๊พผ. ์๋น์ค ์ปดํฌ๋ํธ๋ ํ๋ฉด์ ๋ณด์ด์ง ์์ ์ฑ ์คํ๋์ด, ์ฌ๋ฌ๋ถ์ ๋ฐ์ดํฐ ์์ค์ ํ๋ฉด์ ๋ณด์ด๋ ์กํฐ๋นํฐ๋ค์ ์ ๋ฐ์ดํธํ๊ณ ์๋ฆผ์ ์์ฑํ๋ค. ์๋น์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ฐ์ง ์กํฐ๋นํฐ๊ฐ ํ์ฑ์ํ๊ฐ ์๋๊ฑฐ๋ ํ๋ฉด์ ๋ณด์ด์ง ์์ ๊ฒฝ์ฐ์๋ ๊ณ์ ๋ผ์ผ ํ ํ์๊ฐ ์๋ ์ ๊ท์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋๋ฐ ์ฌ์ฉ๋๋ค.
: Activity์ ๋ฌ๋ฆฌ ์๋น์ค๋ ์๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ์๋ค. ์๋น์ค๋ ์ค๋ ์คํ๋๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ด๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํธ์ถํ ์ ์๋ ๋ฆฌ์น ์ปค๋ฎค๋์ผ์ด์ API๋ฅผ ๊ตฌํํ๋๋ฐ ์ฌ์ฉํ๋ค.
๋ชจ๋ ์๋น์ค๋ manifestํ์ผ์ <service>์์๋ก ๋ํ๋ด์ผํ๋ค. ์ฌ๊ธฐ์ ์ ์ธ๋์ง ์์ ์๋น์ค๋ ์์คํ ์ ํ์๋์ง ์์ผ๋ฉฐ ์คํ๋์ง ์๋๋ค.
โ Provider
ํฌํจ๋ ์์ <application>
ํฌํจ ๊ฐ๋ฅํ ์์ <meta-data>,<grant-uri-permission>,<path-permission>
: ์ฝํ ์ธ ์ ๊ณต์ ๊ตฌ์ฑ์์๋ฅผ ์ ์ธํ๋ค. ์ฝํ ํธ ์ ๊ณต์๋ contentProvider์ ์๋ธ ํด๋์ค์ธ๋ฐ, ContentProvider์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ์ ๊ดํด ๊ตฌ์กฐํ๋ ์์ธ์ค๋ฅผ ์ ๊ณตํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ฝํ ์ธ ์ ๊ณต์๋ manifestํ์ผ์ <provider> ์์์์ ์ ์ํด์ผ ํ๋ค. ๊ทธ๋ฌ์ง ์์ผ๋ฉด ์์คํ ์์ ์ธ์๋์ง ์๊ณ ์คํ๋์ง ์๋๋ค.
โ Receiver
ํฌํจ๋ ์์ <application>
ํฌํจ ๊ฐ๋ฅํ ์์ <intent-filter>, <meta-data>
:broadcast receiver(BroadcastReceiver ์๋ธํด๋์ค)๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ์์ ์คํ๋๋ก ์ ์ธํ๋ค.
Broadcast receiver๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๊ฐ ์คํ๋๊ณ ์์ง ์์ ๋๋ ์์คํ ์ด๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ธ๋ก๋์บ์คํธํ ํ๋ ์ธํ ํธ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ ํ ์ ์๋ค.
broadcast receiver๋ฅผ ์์คํ ์ ์๋ฆฌ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค.
ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ด ์์๋ฅผ ์ฌ์ฉํด manifest ํ์ผ์ broadcast receiver๋ฅผ ์ ์ธํ๋ ๊ฒ. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฝ๋์์ ๋์ ์ผ๋ก broadcast receiver๋ฅผ ๋ง๋ ๋ค์ Context.registerReceiver()๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฑ๋กํ๋ ๊ฒ.
โpermission
ํฌํจ๋์์ - <manifest>
: ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ๊ตฌ์ฑ์์ ๋๋ ๊ธฐ๋ฅ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ ๋ณด์ ๊ถํ์ ์ ์ธ.
โuses-permission
: ์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ๋ฐ๋์ ๋ถ์ฌํด์ผ ํ๋ ์์คํ ๊ถํ. ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์น๋ ๋ ๋๋ ์ฑ์ด ์คํ์ค์ผ๋ ์ฌ์ฉ์์๊ฒ ์ํ์ด ๋ถ์ฌ๋๋ค.
โ Instrumentation
ํฌํจ๋์์- <manifest>
:์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์์คํ ์ ์ํธ์์ฉ์ ๋ชจ๋ํฐ๋งํ ์ ์๋ Instrumentation ํด๋์ค๋ฅผ ์ ์ธํ๋ค. ๊ณ์ธก ๊ฐ์ฒด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ์์ ์ด์ ์ ์ธ์คํด์คํ ๋๋ค.
4. Manifest ๋ด์ ๊ฐ ํ๊ทธ ์์ฝ
<?xml> ํด๋น ํ์ผ์ด xml์ด๋ฉฐ ๋ฒ์ , ์ธ์ฝ๋ฉ ๋ฐฉ์
<manifest> ํด๋น ํ์ผ์ด ๋งค๋ํ์คํธ ๋ฐ์ดํฐ์ด๋ฉฐ ํจํค์ง ์์น ๋ฑ
<user-permission> ์ฑ ๊ถํ ์ค์
<user-library> ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์
<user-sdk> ์ฑ ํ๋ซํผ ๋ฒ์ , API ๋ ๋ฒจ, ์ง์ API ๋ณด๋ค ๋ฎ์ ๊ฒฝ์ฐ ์ฑ ๋์ ์ ์ง
<user-feature> ํ๋์จ์ด, ์ํํธ์จ์ด ๊ธฐ๋ฅ ์ ์ธ
<user-permission> ํ์ค ์์คํ ๊ถํ ์ค์
<permission> ๋ณด์ ๊ถํ ์ค์
<permission-group> ๋ณด์ ์ฌ์ฉ ๊ถํ ๊ทธ๋ฃน ์ ๊ณต
<permission-tree> ๋ณด์ ๊ถํ์ ์ด๋ฆ ํธ๋ฆฌ๋ก ์ค์ ํ์ฌ ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ๋ฆฌ ๋ด์ ๋ชจ๋ ์ด๋ฆ ํธ๋ฆฌ์ ๊ถํ์ ๊ฐ์ง
<permission> ๋ณด์ ๊ถํ ์ค์
<application> ์ฑ์ ์ค์ง์ ์ธ ๊ตฌ์ฑ, ๋ด์ฉ
<activity> ํ์ด์ง ๋จ์(java, xml)
<intent-filter> ์ฑ ํ์ด์ง์ ํ๋, ์ปดํฌ๋ํธ ๊ธฐ๋ฅ ์ ์ธ
<action>์ธํ ๋ ํํฐ์ ์์
<category> ์ธํ ๋ ํํฐ์ ์ด๋ฆ
<data> ์ธํ ๋ ํํฐ์ ๋ฐ์ดํฐ ์ฌ์, ๋ฐ์ดํฐ ์ ํ
<grant-uri-permission> ๋ถ๋ชจ ์ฝํ ์ธ ๊ณต๊ธ์์ ๋ฐ์ดํฐ ํ์ ์งํฉ์ ๋ํด ๋ถ์ฌ ํ ์ ์๋ ๊ถํ
<instrumentation> ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์์คํ ์ ์ํธ์์ฉ ๋ชจ๋ํฐ๋ง
<meta-data> ์์ ๋ฐ์ดํฐ ํญ๋ชฉ ์ด๋ฆ๊ณผ ๊ฐ์ ๋ฌถ์
<provider> ์ฝํ ์ธ ๊ณต๊ธ์ ๊ตฌ์ฑ์์ ์ ์ธ, ์์คํ ์์ ์ธ์
<receiver> ๋ค๋ฅธ ์์ฉํ๋ก๊ทธ๋จ์์ ๋ธ๋ก๋ ์บ์คํธ๋๋ ์ธํ ํธ๋ฅผ ์์ ํจ
<service> activity์ ๋ฌ๋ฆฌ ์๊ฐ์ ์ธ ์ธํฐํ์ด์ค๊ฐ ์๋ ํด๋์ค(๋ฐฑ ๊ทธ๋ผ์ด๋์ฉ)
<supprots-screens> ๋ค์ํ ํฌ๊ธฐ์ ํ๋ฉด์ ๋ํ UI ์ต์ ํ ์ค์
์ฐธ๊ณ ํ ๋งํฌ
https://developer.android.com/studio/intro?hl=ko
https://surai.tistory.com/category/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C
'Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android::LifeCycle ํ์ฉํ์ฌ App๋ง๋ค๊ธฐ (0) | 2020.07.21 |
---|---|
Android::Awesome UI (0) | 2020.07.14 |
Android:: RelativeLayout ๊ณผ ConstraintLayout์ ์ฐจ์ด (0) | 2020.07.07 |
Android:: TableLayout ๊ณผ GridLayout์ ์ฐจ์ด์ ๊ณ์ฐ๊ธฐ View ๋ง๋ค๊ธฐ (0) | 2020.07.07 |
Android::Layout (1) | 2020.07.02 |
๋๊ธ