1에 이어서 포스팅 하겠습니다. AsyncTask는 스레드를 사용하는 매우 편리한 방법입니다. 방법을 외우기만 한다면 매우 편리하죠. 개인의 취향이긴 하지만 저는 AsyncTask를 더욱 선호합니다. AsyncTask의 특징으로는 1. 백그라운드 작업을 쉽고 간단하게 할 수 있다. 2. 결과를 UI 스레드에서 하는 메소드가 있으므로 UI 스레드에 쉽게 접근 3. 메모리 누수(leak) 현상이 일어나지 않도록 액티비티가 종료될 때 cancel해주어야 함 4. 화면전환시 AsyncTask의 처리를 해주지 않기 때문에 예외현상이나 leak이 나타날 수 있다. Main ThreadAsyncTask의 구조Sub ThreadonPreExecute()doInBackground()onProgressUpdate()onP..
먼저 프로세스와 쓰레드의 개념에 대해서 설명하겠습니다. 프로세스란? 강으로 비유하자면 하나의 큰 흐름이자 명칭입니다. 한강에는 수많은 지류들이 있습니다. 그러나 우리는 이 모든걸 통틀어서 한강이라고 합니다. 물론 지류가 없이 큰 줄기하나의 강이 존재할 수 도 있습니다. 이런한 형태들의 프로그램 흐름을 프로세스라 합니다. 시스템적으로 설명하자면 디스크에 저장되어있는 '프로그램'이 메인메모리에 공간을 할당받고 CPU에 의해 실행된 상태를 프로세스라고 합니다. 요약하자면 프로세스는 프로그램의 커다란 흐름입니다. (하나의 프로그램이 여러 프로세스로 이루어질 수 있지만 이는 혼란을 초래하므로 넘어가겠습니다.) 쓰레드란? 쓰레드란 위에서 말한 여러가지 흐름입니다. 그것이 하나가 될 수도있고 여러가지가 될 수도 있습..
액티비티 위에 그림을 그리고 이미지를 출력하는 기능에 대해서 포스팅 하겠습니다. 기본적으로 두가지의 클래스를 사용합니다. 1. Canvas 점, 선, 원, 사각형 그리기/ 텍스트 쓰기/ 이미지 출력 등의 기능을 제공합니다. 2. Paint 펜 두께지정, 색상 선택, 스타일 선택, 글꼴 선택 등의 기능을 제공합니다. 기본적인 구현 순서는 다음과 같습니다. 1. View 클래스를 상속 받는 클래스 생성 2. OnDraw() 메소드 Overriding 3. Paint 객체 생성하고 Canvas에 그리기 4. onTouchEvent() 메소드 구현 5. 액티비티에 추가하기 Paint 클래스의 메서드에 대한 자세한 내용은 아래 링크를 참고하시기 바랍니다.Paint | Android DevelopersPaint p..
이번 포스팅은 앱을 앱답게 만드는 기능입니다. 스마트폰 내부에 파일의 형태로 데이터를 저장시킴으로써 데이터의 저장과 불러오기가 가능합니다. 안드로이드에서의 파일입출력은 자바와 비슷하게 이루어집니다. 좀 더 자세히, 효율적으로 사용을 하고 싶다면 자바의 파일입출력을 먼저 공부하시기 바랍니다. Byte단위 처리 FileInputStream / FileOutputStream 클래스 BufferedInputStream / BufferedOutputStream 클래스 문자 단위 처리 FileReader / FileWriter 클래스 BufferedReader / BufferedWriter 클래스 위 클래스 들을 주로 사용하여 이루어집니다. 이 포스팅에서는 크게 3가지의 파일입출력을 다룰 것 입니다. 1. 내장메모..
웹뷰는 다음 화면과 같이 앱 내에서 웹페이지를 띄워주는 방식입니다. 요즘같은 하이브리드 앱 시대에 많이 사용되는 컴포넌트 이며 구현도 간단해 널리 이용됩니다. 구현 순서는 다음과 같습니다. 1) Manifest에 접속권한 등록 2) 레이아웃에 웹뷰 추가 3) Activity에 코드작성 1. Manifest에 INTERNET권한 등록다음 권한을 AndroidManifest에 추가합니다. 2. 레이아웃에 웹뷰 추가 3. 코드로 구현webView = (WebView)findViewById(R.id.webview); WebSettings webSettings = webView.getSettings(); // 자바스크립트 사용하기 webSettings.setJavaScriptEnabled(true); // Web..
Intent를 통해 객체를 넘겨받고 싶을때가 있을 것 입니다. 예를 들면 어떤 사람의 인적사항, 물건의 정보 등을 액티비티간에 주고받고 싶다면 Intent를 사용해야 겠다고 생각은 할 것이나, 실제로는 주고 받아지지 않을 것 입니다. 객체를 주고 받기위해서는 바로 객체 클래스에 Parcelable을 상속받아 사용해야 합니다. Intent의 사용법은 앞 포스팅 7.Intent에 설명되어 있습니다. 간단하니 바로 시작하겠습니다. 1.객체 클래스제가 이전에 다른 앱을 위해 작성하였던 코드이지만 단순히 메서드만 보면 이해가 힘드시기에 코드를 통째로 붙였습니다. Parcelable 인터페이스를 상속받아 추상메서드를 모두 구현하여 줍니다. 또한 오버라이딩을 하여 아래와 같이 구현하여 줍니다. 한가지 팁이자면 변수를..
이번 포스팅은 바로 그리드 뷰 입니다. 구현방식이 이전 포스팅인 리스트뷰와 너무너무 비슷합니다. 커스텁 어댑터를 사용해 포스팅을 하도록 하겠습니다. 다만 이전의 포스팅과는 다르게 ViewHolder가 아니라 레이아웃을 상속받은 클래스를 ViewHolder대신 사용해 보겠습니다. 자세한 코드 설명은 없이 코드 첨부하고 포스팅을 마치겠습니다. 1. 레이아웃 제작 2. Data Class 제작public class Fruit { private String name; private int image; private String price; public Fruit(String name,int image, String price){ this.name = name; this.image = image; this.pri..
오늘 포스팅 할 내용은 Custom Adapter 라는 이름으로는 잘 이해가 안되는 것입니다. 이것은 리스트 뷰, 그리드 뷰에 장착하여 내가 원하는 레이아웃을 리스트나 그리드에 보여주는 역할을 해줍니다. 물론 리스너도 장착해 레이아웃 속성들에 대한 이벤트도 수신하여 줍니다. 이번 포스팅에서는 ListView를 기준으로 설명하겠습니다. 다음 포스팅에서 GridView에도 사용해 볼 것입니다. Custom Adapter을 리스트 뷰에 장착하는 순서는 다음과 같습니다. 1) 리스트뷰에 보여줄 레이아웃 제작 2) 레이아웃에 표시할 데이터들의 객체를 생성할 Data클래스 생성 3)Custom Adapter클래스를 생성하여 Base Adapter 상속 및 추상 메서드 구현 4)MainActivity에서 Adapte..
https://blog.naver.com/mskira/221027771467
- Total
- Today
- Yesterday
- Android Studio
- MySQL
- AWS
- 강화학습
- branch
- Algorithm
- Confustion Matrix
- OS
- #ausg
- rl
- #handsonlab
- sequelize
- ausg
- Gradient descent algorithm
- Memory segmetation
- #ab
- gitgnore
- 통계적 가설 검정
- Reinforcement Learniing
- Preprocessing
- Markov Decision Process
- MDP
- git
- commands
- Android
- System
- Reinforcement Learning
- p-value
- Linux
- #AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |