전체 글 35

[Android] 안드로이드 스튜디오 기초 (Doit! 안드로이드스튜디오와친해지기)

액티비티(하나의 화면) > 뷰(액티비티의 구성요소) > 레이아웃(뷰를 배치하는 것) 코드를 수정했는데도 이전에 발생했던 에러가 사라지지 않으면? [File] > [Sync Project with Gradle File] (빌드 기능을 담당하는 그래들이 새로 프로젝트를 빌드하면서 변경된 파일의 내용들을 모두 반영하도록 함) [ctrl]+[P] > 소괄호 안에 들어갈 수 있는 파라미터 [오른쪽마우스] > [Gecerate..] > 메서드 입력(코드생성) [ctrl]+[shift]+[F] > Find in Path(파일내용검색) 뷰의 속성 뷰는 컨트롤이나 위젯으로 불리는 UI 구성요소.(사용자의 눈에 보이는 화면의 구성요소들) 뷰그룹은 뷰를 여러개 포함하고 있는 것. 위젯과 레이아웃으로 구별되는 뷰 위젯은 뷰 ..

Android 2021.03.15

[Android] onActivityResult

main액티비티에서 sub액티비티를 호출하여 넘어갔다가, 다시 main 액티비티로 돌아올때 사용되는 기본 메소드. 1. startActivityForResult()로 Activity 호출하기 기존에 startActivity()로 호출하던 것을 startActivityForResult()로 호출을 하면서 인수를 하나 추가. 이 인수는 0보다 크거나 같은 integer 값으로 추후 onActivityResult() 메소드에도 동일한 값이 전달되며 이를 통해 하나의 onActivityResult() 메소드에서 (만약 있다면) 여러 개의 startActivityForResult()를 구분할 수 있습니다. private int REQUEST_TEST = 1; ... button.setOnClickListener(..

Android 2021.03.12

[Android] URL Schemes(외부 스킴)

URL Schemes은 주소창에서 앱실행, 앱간의 값을 전달 (앱에서 다른 앱으로 호출하고 싶을 때, 주소창에서 앱을 실행시키고 싶을 때..) andoridmanifest.xml > activity에 intent 필터 추가 데이터 전달 Intent intent = new Intent(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setData(Uri.parse("bill2://test2?r=receivedstartActivity(intent); startActivity(intent); if(getIntent()!=null){ Uri uri..

Android 2021.03.12

[Android] 안드로이드 생명주기

onCreate() 시스템이 먼저 활동을 생성할 때 실행되는 것으로, 필수적으로 구현. onCreate() 메서드에서 활동의 전체 수명 주기 동안 한 번만 발생해야 하는 기본 애플리케이션 시작 로직을 실행. onCreate() 메서드가 실행을 완료하면 시작됨 상태가 되고, 시스템이 연달아 onStart()와 onResume() 메서드를 호출. onStart() 액티비티가 화면에 보이기 직전에 호출되는 메소드. 활동이 시작됨 상태에 들어가면 시스템은 이 콜백을 호출. onStart()가 호출되면 활동이 사용자에게 표시되고, 앱은 활동을 포그라운드에 보내 상호작용할 수 있도록 준비. 이 콜백이 완료되면 활동이 재개됨 상태에 들어가고, 시스템이 onResume() 메서드를 호출. onResume() 액티비티가..

Android 2021.03.11

[Android] setDisplayWindow()

윈도우 매니저 객체 얻어오기 WindowManager manager = (WindowManager)getSystemService(Context.WINDOW_SERVICE); Display 객체 얻어오기 Display display = manager.getDefaultDisplay(); 화면의 폭 얻어오기 width = display.getWidth(); 화면의 높이 얻어오기 height = display.getHeight(); 스크린 사이즈 구하는 방법 DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int pxWidth = display..

Android 2021.03.10

[Android] Context

Context 를 통해, 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있을 뿐만 아니라, 추가적으로, 어플리케이션 레벨의 작업 - Activity 실행, Intent 브로드캐스팅, Intent 수신 등, 을 수행하기 위한 API 를 호출 할 수도 있다. (어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근, 안드로이드 시스템 서비스에서 제공하는 API를 호출할 수 있는 기능) (자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할, Activity ManagerService에 접근할 수 있도록 하는 통로 역할) 애플리케이션 컨텍스트(Application Context) 현재의 컨텍스트와 분리된 라이프사이클을 가진 컨텍스트가 필요할 때나 액티비티의 범위를 넘어서 컨텍스트를 전달할 때 사..

Android 2021.03.09

[Android] 내부저장소 & 외부저장소

내부저장소 해당 앱에서만 접근 가능, 각 애플리케이션에서만 데이터를 읽고 쓸 수 있음, 보안을 위해서는 외부 어플이 접근할 수 없도록 내부 저장소에 저장하는 것이 안전 - 캐시(Cache) 임시 파일들이 저장. File Context.getCacheDir() 내부 저장소의 캐시 디렉터리 경로를 반환한다. 경로: /data/data/패키지 이름/cache - 데이터베이스(Database) 데이터베이스 파일들이 저장된다. File Context.getDatabasePath(String name) 데이터베이스 파일의 경로를 반환. 인자로 데이터베이스 파일의 이름을 넘겨준다. 경로: /data/data/패키지 이름/databases - 일반 파일 일반 파일이 저장되는 영역이다. 이 경로는 Context.open..

Android 2021.03.08

[Android] ACC를 활용한 MVVM패턴

MVP 패턴에서 파생된 패턴 MVVM(Model-View-ViewModel) 패턴은 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴 View 화면에 보이는 레이아웃 구조. 또한 UI와 관련된 로직을 수행 ViewModel View에 연결된 데이터와 명령을 구현하고 변경 알림 이벤트를 통해 상태의 변경을 View에 알림. 그리고 상태 변경 알림을 받은 View는 변경을 적용할지 말지를 결정. AAC에서의 ViewModel은 화면 회전같은 변화에서 View에 사용되는 데이터를 유지시키기 위한, Lifecycle을 알고있는 클래스. Model Model은 사용하려는 데이터를 가지고 있는 비시각적 클래스. 일반적으로 데이터를 액세스하거나 캐싱이 필요한 서비스 또는 리포지토리와 함께 사용

Android 2021.03.03

[Android] 비동기 처리(AsyncTask)

AsyncTask가 메인쓰레드를 작업을 좀 더 효율적이게 해줄 수 있는 비동기적 처리 방법 onPreExexute() 작업이 실행되기 전에 UI 스레드에서 호출. doInBackground 메소드가 실행되기 전에 프로그레스바를 보여주는 등의 필요한 초기화 작업을 하는데 사용 doInBackground(Void... params) onPreExexute()가 실행을 마친 직후 백그라운드 스레드에서 호출. 가장 핵심적인 작업을 수행하는데 사용 onPostExecute(String result) doInBackground()가 끝난 후에 UI 스레드에서 호출.doInBackground의 리턴 값을 매개변수로 받아 처리 onCancelled() doInBackground() 수행 중이나 메이스레드에서 cance..

Android 2021.03.02