Android 10

구글의 IOT 솔루션

구글의 IOT 솔루션 조대협 (http://bcho.tistory.com) 오늘 샌프란시스코 구글 NEXT 행사에서 IOT 솔루션에 대한 소개가 있었는데, 내용이 괜찮아서 정리를 해놓는다. 구글의 특징은 안드로이드 플랫폼, 클라우드 , 분석 플랫폼, 개발자 에코 시스템 등 End to End 에 걸쳐서 상당히 다양한 포트폴리오를 가지고 있다는 것이 장점인데 이를 잘 녹여낸 아키텍쳐 구성이다.디바이스 OSIOT는 라즈베리파이와 같은 임베디드 디바이스를 사용하는 것이 일반적인데, 이런 임베디드 시스템 운용에 어려운 점중의 하나가 보안이다.장비에 따라서 보안적인 문제가 없는지 체크를 해야 하고, 주기적으로 기능 및 보안에 대한 업데이트를 해줘야 하는데, 구글의 Android IOT (https://develo..

안드로이드 채팅 UI 만들기 #1 - ListView를 이용한 채팅창 만들기

안드로이드에서 ListView를 이용한 채팅 UI 만들기 조대협 (http://bcho.tistory.com) 안드로이드 프로그래밍 기본 개념이 어느정도 잡혀가기 시작하니, 몬가 만들어봐야겠다는 생각이 들어서 생각하던중에 결론 낸것이, 간단한 채팅 서비스, 기존에 node.js 하면서 웹용 채팅을 만들어보기도 했고, 찾아보니, 안드로이드용 SocketIO 라이브러리도 잘되어 있어서 서버 연계도 어려울것이 없을것 같고, 또한 메세지가 왔을때 푸쉬 알림을 써야 하는 등 이것저것 실습이 될것 같아서, 결국은 채팅으로 정했다. 서버나 연계 코드 구현보다, 가장 어려운게 역시나 UI 디자인과 프로그래밍인데, 가장 쉬운 방법으로는 ListView를 사용하는 방법이 무난하다. (결국 코딩을 하고 나니 여러가지 한계를..

SharedPreference를 이용한 데이타 저장 및 애플리케이션간 데이타 공유

SharedPreference를 이용한 데이타 저장 및 애플리케이션간 데이타 공유 조대협 (http://bcho.tistory.com) 안드로이드에서는 데이타를 저장할때 여러가지 방법을 사용할 수 있다.대표적인 방법으로는 일반적으로 파일을 생성해서 저장하는 방법, 그리고 안드로이드에 내장된 데이타 베이스인 SQLite 데이타 베이스를 활용하는 방법이외에 SharedPreference라는 클래스를 사용하여 데이타를 저장하는 방법이 있다. SharedPreference SharedPreference는 간단하게 Key/Value 형태로 데이타를 저장할 수 있는 데이타 구조로 내부적으로는 XML 파일로 저장이 된다. 사용법이 매우 간단해서 일반적인 설정값이나 세션 정보, 사용자 정보와 같은 값들을 저장하거나 주..

안드로이드 기초 - 컴파일,설치,실행 (커맨드라인)

안드로이드에 애플리케이션 컴파일,설치해서 실행하기 (에뮬레이터 실행 포함) 조대협 (http://bcho.tistory.com) 다음은 개발된 애플리케이션을 단말이나 또는 에뮬레이터에서 실행하는 방법이다.이 방법은 안드로이드 스튜디오 1.2.2 을 맥북에 설치한 기준으로 설명한다.안드로이드 스튜디오 IDE가 좋아서, 필요는 없겠지만. 몰 하던간에 IDE 없이도 할 수 있는 방법이 있어야 하기에 테스트 해놓은 내용을 기록해놓는다. 1. 애플리케이션 컴파일 하기 디렉토리에서 ./gradlew assembleDebug명령을 실행하면, 디버깅 모드로 컴파일이 되고 apk 파일이 생성된다. 위와 같은 에러가 발생할 수 있는데, 이 경우는 ANDROID_HOME이 설정되지 않은 경우이다.~/bash_profile에..

안드로이드 리소스파일 (Resource)

안드로이드 리소스 파일 개요 조대협 (http://bcho.tistory.com) 안드로이드 프로젝트에서 소스 코드 이외에 이미지나 디자인 레이아웃등의 기타 리소스등을 코드와 분리해서 취급한다. 이렇게 리소스를 코드와 분리해서 사용하는 이유는, 조금 더 유연하게 애플리케이션을 개발하게 하기 위함이다. string과 같은 문자열을 별도의 리소스 파일에서 관리함으로써, 애플리케이션 수정 없이 string 리소스 파일에만 문자열을 추가함으로 간단하게 다국어를 지원할 수 있다. 리소스는 크게 7가지 타입의 리소스가 있고, “/res” 디렉토리에 저장된다. Layout Resource (뷰 리소스)애플리케이션 UI의 배치 에 대한 내용을 XML 형태로 정의하여 저장한다. res/layout 아래와 XML 형태로 ..

안드로이드 인텐트를 통해서 새로운 액티비트에 데이타 전달하기

안드로이드 인테트를 통해서 액티버티 생성하기 조대협(http://bcho.tistory.com) 요즘 일이 바쁘고 하는 역할도 바뀌어서 기술보다는 관리나 스크럼에 대한 글들을 읽고 공부하다보니, 반대적으로 기술에 대한 포스팅이 줄었다. 이래서는 안되겠다 싶어서, 어떤 부분을 봐야 할까 고민하다 보니 빅데이타와 앱 개발 기술쪽을 봐야겠다가 시작은 했는데, 막상 진도는 잘 안 나가고 있어서. 앱팀을 운영하고 있으니, 말이라도 통할려면 기본이라도 알아야 겠다 해서 안드로이드 앱쪽을 공부하고 있는데, 일단 해놓은 내용이라고 까먹지 않으려면 정리해놔야겠다는 생각에 간단하게 포스팅한다. 본 문서의 내용은 https://developer.android.com/training/index.html 를 기반으로 작성하였다..

안드로이드 기초-뷰와 뷰그룹의 개념

Android View와 ViewGroup의 개념 View와 ViewGroup 객체를 이용해서 만듬.View는 버튼이나 텍스트필드와 같은 UI Widget 이다. ViewGroup은 여러개의 View 또는 ViewGroup을 포함할 수 있는 컨테이너의 개념이며, ViewGroup을 상속하여 화면 배치 속성을 갖는 Layout을 가지고 있는 ViewGroup이 있다. ex)LinearLayout 등 출처 : https://developer.android.com/training/basics/firstapp/building-ui.html 이 ViewGroup은 res/layout/*.xml 에 XML 형태로 정의할 수 있다.다음은 LearLayout 을 선언한 예이다.View의 경우에는 보통 다음과 같은 형태..

안드로이드 액티버티 생명 주기와 BackStack

안드로이드 Activity Lifecycle (액티버티 생명주기)와, Back Stack & Task 조대협 (http://bcho.tistory.com) Back Stack Activity의 라이프 사이클 개념을 이해하기 전에, 먼저 BackStack이라는 개념을 이해해야 한다. 안드로이드 애플리케이션은 모바일 애플리케이션의 특성상 하나의 화면, 즉 Activity만 화면에 활성화가 되게 된다. 활성화 된 화면에서 작업하다가, Back 버튼등을 눌러서 이전화면으로 돌아갈 수 있는데, 이런 돌아가는 구조를 지원하기 위해서, 내부적으로 화면이 전환이 되더라도 기존의 화면을 없애는것이 아니라 메모리에 저장해놨다가, 돌아갈때 저장된 화면을 띄워 주는 구조가 된다 이런 구조를 구현하기 위해서 내부적으로 Back..

안드로이드 플랫폼 기본 아키텍쳐

안드로이드 플랫폼 기본 아키텍쳐 조대협 (http://bcho.tistory.com) 안드로이드 플랫폼의 기반 아키텍쳐를 살펴보면 다음 그림과 같다. 원본 : https://en.wikipedia.org/wiki/Android_(operating_system)#/media/File:Android-System-Architecture.svg 리눅스 커널 일단 가장 아랫단에, Linux 커널 이 올라가 있다. 일반적인 Linux 커널과 크게 다르지는 않지만, 모바일 디바이스에 최적화된 전력 관리 기능이나 안드로이드에 최적화된 Binder IPC (프로세스간 커뮤니케이션) 부분등이 포함되어 있다. 시스템 라이브러리 리눅스 커널위에는 C로 구현된 몇가지 네이티브 라이이브러리들이 올라가 있다. 3차원 그래픽을 위한..

안드로이드 프로그래밍 시작하기

안드로이드 프로그래밍 시작하기 (둘러보기) 조대협 (http://bcho.tistory.com) 요즘 서버쪽 기술은 다소 시들해진것도 같고, 하는 일이 모바일 서비스인지라 (얼마전에도 그랬지만..) 알아야할것 같아서, 안드로이드 프로그래밍을 보기 시작했다. 아무래도 서버 개발자 출신이다 보니 안드로이드 개발이라는 생소한 분야를 이 나이에 공부하면서 정리하는 내용이니 혹여나 내용이 허접하더라도.. 이해해주시기를.. (초보자 시각에서 정리한 내용입니다. ) 구글에서 안드로이드 IDE인 안드로이드 스튜디오를 다운받아서 설치하면, 통합 개발 환경을 사용할 수 있다. 이 IDE는 보니, JetBrain의 IntelliJ를 기반으로 만들어진 환경이다. (구글이 이런 투자는 잘한듯..) 그러다 보니 이클립스를 쓰면서..