- 비트맵 파일
- 나인 패치(크기 조절 가능한 비트맵)
- 상태 목록
- 셰이프
- 드로어블 애니메이션
- 기타 드로어블
2020년 4월 23일 목요일
android AsyncTask 왜 사용할까 ?
Main Thread?
UI Thread?
AsyncTask를 포스팅 하는데 저 위에 쓰레드들이 거슬린다.
그래서 찾아보니
안드로이드의 메인스레드는 주요 컴포넌트를 실해하는 곳이면서, UI Thread를 갱신하거나 수행하는 유일한 Thread 이다. 그래서 메인 스레드를 UI Thread라고 부르는 경우도 있다.
AsyncTask 아니 이놈은 왜? 써야할까
서칭하면 대부분 httpConnetction을 사용과 함께 십중팔구 AsyncTask를 사용한다.
AsyncTask 흐름과 구성 설명으로는 내 궁금증이 해소되지 않는다.
그렇기에 찾아봤다.
안드로이드 화면에서 View ViewGroup은 싱글스레드 모델을 원칙으로 돌아간다. 긴 시간이 걸리는 작업을 메인 Thread에서 담당한다면 애플리케이션 반응성이 떨어질 수 있고, 사용자의 불편함이 증가한다. 그래서 긴 작업에 대한 접근으로 여분의 스레드를 메인 Thread와 분리
해야 하고,메인 Thread와 다른 쓰레드간 통신하는 방법이 필요하게 된다.
HandlerThread, Thread 등을 관리해야 하는 코드를 작성해야 한다.
다만 AsyncTask를 사용하면 가독성도 높아질 수 있고 쓰레드에 대한 개념을 알고 사용하면 좋겠지만 잘 모르는 사람도 캡슐화가 잘 되어있어서 사용가능하다.
궁금증 해결 완료! !
참고
https://academy.realm.io/kr/posts/android-thread-looper-handler/
https://itmining.tistory.com/5
UI Thread?
AsyncTask를 포스팅 하는데 저 위에 쓰레드들이 거슬린다.
그래서 찾아보니
안드로이드의 메인스레드는 주요 컴포넌트를 실해하는 곳이면서, UI Thread를 갱신하거나 수행하는 유일한 Thread 이다. 그래서 메인 스레드를 UI Thread라고 부르는 경우도 있다.
AsyncTask 아니 이놈은 왜? 써야할까
서칭하면 대부분 httpConnetction을 사용과 함께 십중팔구 AsyncTask를 사용한다.
AsyncTask 흐름과 구성 설명으로는 내 궁금증이 해소되지 않는다.
그렇기에 찾아봤다.
안드로이드 화면에서 View ViewGroup은 싱글스레드 모델을 원칙으로 돌아간다. 긴 시간이 걸리는 작업을 메인 Thread에서 담당한다면 애플리케이션 반응성이 떨어질 수 있고, 사용자의 불편함이 증가한다. 그래서 긴 작업에 대한 접근으로 여분의 스레드를 메인 Thread와 분리
해야 하고,메인 Thread와 다른 쓰레드간 통신하는 방법이 필요하게 된다.
HandlerThread, Thread 등을 관리해야 하는 코드를 작성해야 한다.
다만 AsyncTask를 사용하면 가독성도 높아질 수 있고 쓰레드에 대한 개념을 알고 사용하면 좋겠지만 잘 모르는 사람도 캡슐화가 잘 되어있어서 사용가능하다.
궁금증 해결 완료! !
-끝-
참고
https://academy.realm.io/kr/posts/android-thread-looper-handler/
https://itmining.tistory.com/5
HTTP headers | Content-Type
3가지로 분류된다.
media type
charset
boundary
https://www.geeksforgeeks.org/http-headers-content-type/
PHP Superglobal
$GLOBALS
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
특이한 접근이 있다 선언 이후에 $x $y와 같이 선언하지 않았음에도 $GLOBALS가
접근 가능하다.
이 부분은 $GLOBALS z 가 이미 global 영역 z가 선언 된 것이 아닐까
참고
https://www.w3schools.com/php/php_superglobals_globals.asp
PHP array 정렬
sort() - 알파벳 순서대로
rsort() - 위에 꺼 거꾸로
asrot() - key value 중 value 값으로 정렬
ksort - key 값으로 정렬
arsort() - asrot() 거꾸로
rsort() - 위에 꺼 거꾸로
asrot() - key value 중 value 값으로 정렬
ksort - key 값으로 정렬
arsort() - asrot() 거꾸로
krsort() - ksort() 거꾸로PHP array (배열)
3종류가 있다.
Indexed arrays
$alphabet = array("A", "B", "C");
echo $alphabet[0] . $alphabet[1];
AB 값이 출력된다.
Associative arrays
$alphabet = array("A"=>"32", "B"=>33, "C"=>34);
echo $alphabet['A'] . "," . $alphabet['B'];
32,33 값이 출력된다.
Multidimensional arrays
$Ramen = array
(
array("신라면",13,"750"),
array("열라면",20,600),
array("틈새라면",5,900)
);
for ($row = 0; $row < count($Ramen); $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < count($Ramen[0]); $col++) {
echo "<li>".$Ramen[$row][$col]."</li>";
}
echo "</ul>";
}
Row number 0
Indexed arrays
$alphabet = array("A", "B", "C");
echo $alphabet[0] . $alphabet[1];
AB 값이 출력된다.
Associative arrays
$alphabet = array("A"=>"32", "B"=>33, "C"=>34);
echo $alphabet['A'] . "," . $alphabet['B'];
32,33 값이 출력된다.
Multidimensional arrays
$Ramen = array
(
array("신라면",13,"750"),
array("열라면",20,600),
array("틈새라면",5,900)
);
for ($row = 0; $row < count($Ramen); $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < count($Ramen[0]); $col++) {
echo "<li>".$Ramen[$row][$col]."</li>";
}
echo "</ul>";
}
Row number 0
- 신라면
- 13
- 750
- 열라면
- 20
- 600
- 틈새라면
- 5
- 900
결과 값이 출력된다.
PHP 변수 명명규칙
그러하다 !
- 변수는 $로 시작한다.(사용자 명시 없어도 타입을 자동으로 처리한다.)
# In PHP 7, type declarations were added 아마도 가독성과 실수 때문이리라
- 변수는 언더스코어 또는 일반 문자(영)로 시작한다.
- 변수명 첫 글자를 숫자로 시작할 수 없다.
- 변수명은 대소문자의 같은 이름은 서로 구별된다 ($age $Age는 서로 다른 변수 )
- 상수를 다루려면 $을 붙이면 안된다.
변수의 영역은 이렇게 존재한다.
local
global
static
android UI UX
UI에 대한 프로그램 추천
전반적인 black white UI 설명
https://material.io/design/color/dark-theme.html#properties
UI 움직임 페턴 설명 (app & user 상호작용)
https://material.io/design/material-studies/basil.html#motion
UI UX 모아놓은 사이트
https://monsterdesign.tistory.com/1630
화면찾기
https://medium.com/google-design/how-to-find-device-metrics-for-any-screen-62b9ad84d097
참고
https://www.mockplus.com/blog/post/android-ui-design-tool
피드 구독하기:
글 (Atom)