자바 어플 개발/안드로이드 스튜디오 기초

자바 어플리케이션에 대해서 기본설명<1>

appmaster 2019. 7. 19. 15:24

Package name은 그 어플리케이션의 고유값을 설정하는것이기 때문에 만약 다른 어플과 고유값이 충돌이 나면 playstore에 나의 어플을 올릴수가 없다. 확인방법은 package name을 변경하는데 만약 빨간줄이 있다면 이미 사용하고 있다는 뜻이된다.

 

 

안드로이드에서 AVD설정하는 화면에 만약 인터넷속도를 결정하고 싶으면 network로 간다. 그런데 그곳에는 보통 full(default 값)로 되어있는걸 추천한다. 왜냐하면 상황에따라서 가장빨리 속도를 낼 수 있는 네트워크로 연결되기 때문이다. full밑에 다른것은 임의로 특정 네트워크를 정해주는 것이다.

 

 

안드로이드탭은 앱이 최상위 폴더이다. 그리고 그곳에는 manifest를 볼 수 있는데, 그곳에 들어가면 이렇게 나온다. 또한 manifest는 앱을 만드는 과정을 보는 목차라고 해도 된다. 그러므로 manifest를 보면 개발할때 어떤것이 있는지 전부 확인을 할 수 있다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">  //패키지명을 볼 수 있다.

    <application
        android:allowBackup="true" //설치했다 지웠을 때 일정부분을 남겨놓을건지에 대한설정이다.
        android:icon="@mipmap/ic_launcher" //아이콘의 설정인데 mipmap이라는폴더 안에있는 ic_launcher라는 파일을 아이콘으로 사용하겠다.
        android:label="@string/app_name" //앱의 이름을 설정해주는 것이다.
        android:roundIcon="@mipmap/ic_launcher_round" //원래 아이콘이 모양 설정이 2가지 방법인데(동그랗게, 네모낳게), 동그랗게 아이콘을 설정하겠다는 뜻이다. 
        android:supportsRtl="true" //Right to Left뜻이다. 무슨뜻이냐면 글을 읽을떄 보통 왼쪽에서 오른쪽으로 읽는데, 중동권문화 같은 경우 왼쪽에서 오른쪾으로 읽기때문이다. 그것을 지원할지말지 결정해주는 것이다. 즉 자동으로 뒤집어주는 설정도 들어있는것이다.
        android:theme="@style/AppTheme"> //에뮬레이터를 켰을때 기본적으로 설정되어있는 테마를 사용하는 것이다.
       
       
       
       <activity android:name=".MainActivity"> // 액티비티의 이름
            <intent-filter> // 액티비티가 받을 수 있는 intent이다.
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" /> // LUNCHER는 액티비티가 여러개 있을때 어떤 액티비티부터 최초로 킬건지 결정해주는 것이다.
            </intent-filter>
            
        </activity>
    // 앱전체 안에 activity가 있다는 것이다. 앱을 켰을때 보이는 한 화면의 모습이다. 즉 화면을 넘어갈때,
    엑티비티가 넘어간다고 생각하면 된다. 그리고 이곳에는 엑티비티가 하나만있으므로 화면이 하나만 있다고 생각하면된다.
    
    
    </application>
    //여기까지가 어플리케이션 설정에 관한 이야기다. (앱 전체를 뜻하는 것이다.)

</manifest>

 

 

 

 

이제 자바폴더에 들어가면 이렇게 볼 수 있다.

첫번쨰 폴더는 우리가 직접 어플리케이션을 개발할 때 사용하는 파일이다.

나머지 2개 파일은 TestCode를 넣는 부분이다. TestCode란 내가 의도한것이 정말 잘 작동하는지 확인하는 것이다. 파일이 두개 있다는 것은 TestCode도 2개가 있다는 것이다.

 

 

첫번쨰 종류는 androidTest인데, 이것은 핸드폰 화면에 어떠한 버튼을 누르면 내가 원하는 모습이 나오는지 확인하는 곳이다. 또한 내가 입력한 데이터가 잘 들어가는지 보는것이다. 

 

 

두번째 종류는 test이다. 만약 더하기 함수를 사용했을때 예를들어 3+5 하면 8이 나오는지 즉 유닛테스트를 해보는 것이다. 안드로이드는 요소가 들어가 있고 그것을 테스트하고 싶을때test코드를 작성한다.

 

 

이곳에 들어가면 mainactivity를 볼 수 있는데, 프로젝트를 만들때 default로 생성된 액티비티이다. 화면을 추가하고 싶을때 activity를 만들어야한다. 첫번째 위치한 폴더(com.example.myapplication)에 만들면 된다. 클래스를 만든다던지 인터페이스를 만든다던지 하는 작업은 이 폴더 밑에서 하면된다.

 

 

 

 

generatedJava같은 경우에는 어플리케이션화면을 만들고 클래스를 만들면 알아서 자동으로 생성을 하는 부분인데 이곳은 보통 건들지 않는다.

 

 

 

 

 

앱을 사용할때 여러가지 요소(resource)를 사용하는데 이것들을 담아놓은 폴더이다. 

 

drawable은 앱에서 사용될 이미지를 저장하고 사용되는 곳이다. 이폴더 안에 이미지를 넣어두고 필요할때 이미지가 필요할때 꺼내서 사용한다고 보면 된다.

 

layout폴더는 어떤 xml 코드로 화면을 그릴때 모두 layout으로 간다.

 

mipmap에는 drawable파일도 들어가는데, 보통 앱 아이콘이 들어가게 된다. 

 

values폴더에는 어떤 resource를 사용하는데, 이미지나 다른것들(?)은 이름이 길고 그걸 매번 칠수가 없기때문에 대표적으로 사용되는 resource를 정해놓고 그 대표하는 이름을 사용하는 곳이다. values폴더에 들어가면 color가 있는데 그곳을 보면 이러하다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    
    <color name="colorPrimary">#008577</color> //칼라프라임이 있고, 칼라 코드가 있다. 즉 대표명과 대표명의 실제 값이다.
    //자세히 보면#이 있고 그뒤에 숫자가 있다. 제일 대표 칼라이다. RGB즉 red, green, blue로 이루어져있다.
    //두자리 숫자씩 표현되는데, 00은레드, 85는그린, 77은블루이다.
    //이렇게 숫자 하나하나 외우는것은 거의 불가능하기때문에 만약 이러한 칼라를 사용하고싶으면, 숫자를
    //숫자를 사용하는 것이아니라 colorPrimary인 이름을 사용하는 것이다.
    //맵같은건데 colorprimary는 키고 008577은 벨류라고 생각하면된다.
   
   <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
</resources>

String폴더에도 들어가보자

<resources>
    <string name="app_name">My Application</string>
    // 칼라에서 설명과 마찬가지로 key와 value값이 있다.
    // "app_name"은 키고 My Application은 벨류이기 때문에 
    // 핸드폰 화면에는 벨류값인 My Application이 나온다.
    // manifest에 가면 앱이름이 android label에 있는데 그곳에 String값인 (app_name)
    // 이라고 key값이 나와있다. 실제 벨류값은 My Application이다.
    // 또 이곳도 만약 value값이 길어지면, value값을 그대로 쓰는게 아니라 key값을 사용하면된다.
    
    
</resources>

마지막으로 style폴더도 보자

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item> //colorprimary를 아이템으로 사용하겠다라는 뜻이다. 이것을 확인하고 싶으면 window에서는 control키를 누르고 마우스좌클릭을 누르면 된다.
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

보다싶이 누누이 강조하지만 value값을 쓰는게 아니라 편의를 위해서 글자를 줄여 key값을 사용하는 모습을 볼 수 있다. 그리고 반드시 key값을 사용할때는 @을 이용한다는것도 잊지말자!

 

 

 

 

gradle Scripts폴더 위에는 사람이 알아들을 수 있는 언어로 컴퓨터에게 명령을 작성을 하고, 컴퓨터가 스스로 자신이 알아들을수있게 컴퓨터 언어로 바꿔야한다. 이러한 컴퓨터언어로 바꾸는 작업을하는것이 gradle이 한다.