Android 개론
description
Transcript of Android 개론
![Page 1: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/1.jpg)
안드로 App. Web 과 친해지기
![Page 2: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/2.jpg)
후딱 안드로이드 프로그래밍에친해지고 싶을 때 좋은 책
안드로이드 프로그래밍좀 더 알아가고자 할 때 좋은 책
![Page 3: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/3.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 4: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/4.jpg)
1. IDE 환경을 설정하도록 합시다 .
이건 따로 설명 생략 . 다들 인터넷을 참고 ~
2. Eclipse 에서
![Page 5: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/5.jpg)
![Page 6: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/6.jpg)
![Page 7: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/7.jpg)
메시지 찍었네 .이제 다 한 거다 ~
![Page 8: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/8.jpg)
난 아무 것도 한 것이 없는데 ,화면에 뭔가 찍혔네 !나 대신 뭔가가 되어 있겠지 . 그럼 내가 그걸 손 대면 되겠다 .
어딜 손 댈까 ?
안드로이드도 기계이니깐 분명히 어떤 단서가 있을 듯 ?!
![Page 9: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/9.jpg)
안드로이드 App 을 실행 시키는 입장에서
해당 App 이 어떤 화면들로 구성이 되어 있고 ,만약이 OS 상에서 어떤 일이 발생되면 , 어떤 행동을 시킬지도 알아야 하고 ,OS 상에서 중요한 데이터 중 어떤 데이터를 접근하는지 ..
등과 같은 정보들을 알아야 하는데 , 이 때 이걸 참고합니다 .
근데 , Smart 하지는 않아서 , 여기 안 적어주면 별도로 알아보지는 않아요 .
![Page 10: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/10.jpg)
LAUNCHER!!이게 바로 실행 지점이란이야기 같군 !!
이름인데 , 마침표로 시작한 걸 보니 . class?왠지 내용 중에서 보니 , 이 곳에 자세한 내용이있겠다 싶다 .
![Page 11: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/11.jpg)
res/layout/main.xml이건 관행 !! 관행 !!
![Page 12: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/12.jpg)
R
이건 또 다른 관행 !! 관행 !!
![Page 13: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/13.jpg)
res/layout/main.xml xml 로 화면 구성하는 군 ?!
![Page 14: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/14.jpg)
바뀐 화면 !!
![Page 15: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/15.jpg)
다른 것도 바꾸고 싶다 !
그리고 main.xml 바꾸면 더 바꿀 수 있겠다 싶다 .
![Page 16: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/16.jpg)
![Page 17: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/17.jpg)
화면 구성은 XML 로 적절히 넣어서 하면 되겠구나 .넣을 수 있는 것들은 ?
XML 을 통한 제어 외에 java 코드를 통해서도 제어가 얼마든 가능
![Page 18: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/18.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 19: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/19.jpg)
@+id/clickMe
링크 또는 분류
신규 추가
id 유형
대상을 지칭하는 값눌러도
아무런 일이 없어요 !
![Page 20: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/20.jpg)
Swing 에서 하는 것 같이 , 누군가 누르면 눌렀다는 것을 알게 해주고 ,
그것을 아는 이는 해당 시점에 정해진 동작을 하게 하도록 합시다 .
①②
① 화면 구성원으로 있는 항목들 중 우리가 관심 있는 버튼을 가져오자 .화면에 있는 것을 찾아 올 때에는 id 를 활용하고 방법은 관행에 따른 명명으로findViewById 함수에 아이디를 전달하면 , 원하는 View 를 가져올 수 있어요 .
②클릭하는 이벤트를 감시하고 있을 친구를 붙여줍시다 .그 친구는 android.view.View.OnClickListener 부류이니 , 이 종류에 해당하는친구를 지정을 setOnClickListener 를 통해서 합니다 .이제 WebViewActivity 는 붙여 논 친구가 어떤 일을 하던 이제 신경 끝 ~ ^^
![Page 21: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/21.jpg)
Swing 에서 하는 것 같이 , 누군가 누르면 눌렀다는 것을 알게 해주고 ,
그것을 아는 이는 해당 시점에 정해진 동작을 하게 하도록 합시다 .
LogCat : 로그 보는데 유용
Tip. v.getId() == R.id.clickMe 이를 통해서 구분
![Page 22: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/22.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 23: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/23.jpg)
새로이 보여줄 화면을 만들고 ,
버튼이 클릭 될 때 , 해당 화면으로 이동을 하게 해야 겠어요 .
지금까지 우리가 가지고 논 화면이 바로 Activity!그렇다면 . 화면 == Activity 그렇기에 , 화면 만들기 == new Activity
![Page 24: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/24.jpg)
새로이 보여줄 화면을 만들고 , 안드로이드에게 새 화면을 알려줍니다 .
버튼이 클릭 될 때 , 해당 화면으로 이동을 하게 해야 겠어요 .
안드로이드에게 App 내에 어떤 것이 있다고 알려주는 것은 ?
AndroidManifest.xml
![Page 25: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/25.jpg)
새로이 보여줄 화면을 만들고 ,
버튼이 클릭 될 때 , 해당 화면으로 이동을 하게 해야 겠어요 .
우리는 버튼이 클릭이 될 때 , 현재 보고 있는 화면을새로운 화면을 보여주는 NextViewActivity 를 실행 시켜서
새 화면으로 이동으로 하고자 하는 Intent 를 수행하고자 합니다 .
추가 Tip.Intent 를 확장할 때에는 Bundle 에 내 의도를 더욱 담아서 ~
새로 수행되는 Activity 가 마쳐진 뒤에 그 결과 따라서 추가적 동작 할 땐 ~
![Page 26: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/26.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 27: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/27.jpg)
개발은 개발자에게 , 웹은 WebView 에게 .
앞서 만들었던 NextViewActivity 가 WebView 를 품게 합시다 .
페이지에 WebView 를 넣었고 , 해당 웹뷰가 특정 URL 을 열게 했습니다 .
이제 남은 것은 실행 뿐 !
![Page 28: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/28.jpg)
네트워크가 이상한가 싶었는데 ?!
기본 브라우저에서는 잘 접근되네 !
이게 뭐야 ~~
![Page 29: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/29.jpg)
문제는 Permission!나름 OS 님에게 인터넷 사용한다고 알려주어야 합니다 .
이렇게 OS 님에게 알려줄 때에는 AndroidManifest.xml
![Page 30: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/30.jpg)
뜨나 싶었는데 ,
이번에는 껍데기만 뜨네 !!
내용물 다 어이 갔어 ??
이게 뭐야 ~~
내용물 == 자바스크립트로 가져오는 부분
![Page 31: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/31.jpg)
WebView 에 대한 세부 설정을 조정해서 원하는 형태로 만들 수 있구나 !
![Page 32: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/32.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 33: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/33.jpg)
원활한 테스트를 위해서 , 로컬에 html 페이지를 만들어서 로딩합니다 .
웹서버가 없어도 로컬 html 을 통해서 UI 구성이 가능하겠지요
![Page 34: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/34.jpg)
JavascriptInerface
Toast.makeText(…).show();
![Page 35: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/35.jpg)
![Page 36: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/36.jpg)
![Page 37: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/37.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 38: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/38.jpg)
App 에서 Web 을 제어하는 것은 URL 을 통해서 수행할 수 있습니다 .
우선은 url param 을 던져보기를 통해서 !!
![Page 39: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/39.jpg)
App 에서 Web 을 제어하는 것은 URL 을 통해서 수행할 수 있습니다 .
이번에는 페이지에 있는 javascript 호출을 통해서 !!
페이지 로딩이 마칠 때까지기다리기 위한 꼼수 !!
정식은 WebViewClient 설정
![Page 40: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/40.jpg)
WebViewClient WebChromeClient
onPageFinishedonPageStartedonReceivedErroronScaleChangedshouldOverrideUrlLoading
등 브라우저 순수 동작 자체에대해서 , customizing 할 수 있는기능을 사용
onJsConfirmonJsAlertonJsTimeoutonProgressChangedonCreateWindow
등 브라주저에서 기존 기능 외javascript 기능 확장을 제어하는데사용되는 클래스
• 페이지 로딩되는 순간 로딩 메시지 보여주고 싶어요 WebViewClient 설정• 자바 스크립트에서 alert 이 보이지 않아요 WebChromeClient 설정• 로딩 되는 특정 url 에 대해서 특정 작업하고 싶어여 WebViewClient 설정
![Page 41: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/41.jpg)
단계 1. 화면에 글씨를 써보자 .
단계 2. 버튼을 누르고 조그만 메시지 보이게 해보자 .
단계 3. 다른 화면을 추가하고 버튼 누르면 해당 화면으로 가자 .
단계 4. 버튼 눌러서 이동된 화면에 특정 웹 페이지를 열자 .
단계 5. 웹페이지에서 App 에게 이야기 해서 메시지를 보여주자단계 6. App 에서 특정 데이터를 웹페이지에게 이야기 해서 보여주자 .
단계 7. SMS 를 받으면 , 받은 메시지를 저장해 두었다가 , 보여주자 .
![Page 42: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/42.jpg)
![Page 43: Android 개론](https://reader033.fdocument.pub/reader033/viewer/2022061116/5465e401af795982288b57f2/html5/thumbnails/43.jpg)
View
Control
Model
화면 구성하기 ~ xml 들 .물론 java 코드로도 구성 . 화면 자체
Activity, Service, Broadcast Receiver뭔가를 하는 . 경우에 따라 화면도 띄우고 .경우에 따라 화면 없이 혼자 놀고 . 가끔은 누가 뭐라고 하면 들어주기도 하는
데이터를 저장하는 역할 .SQLite, File 또는 Content Provider