728x90
반응형

안드로이드 21

[Android] 화면 OFF 상태에서 Key Event 받기 | AcessibilityService 상속 서비스 | KeyEvent 서비스 | 접근성 서비스

안드로이드 단말에는 다양한 키들이 존재한다. 볼륨 Up/Down, 전원 등등의 키가 있고 이 키들이 press/release 되는 이벤트를 앱에서 받아 처리 할 수 있다. 아래 링크에서 안드로이드가 제공해주는 기본 키들에 대한 정보를 알 수 있다. https://developer.android.com/reference/android/view/KeyEvent KeyEvent | Android Developers developer.android.com 안드로이드 앱에서는 기본적으로 onKeyUp / onKeyDown 을 받아서 처리가 가능하다. public class KeyEventActivity extends AppCompatActivity { private static final String TAG = ..

WORK/Android 2022.04.01

[디자인패턴] 템플릿 메소드 패턴 | Template Method Pattern | 안드로이드 예제

지난 게시글에서 퍼사드 패턴을 출근 준비로 표현했던 것 처럼..! 이번 템플릿 메소드 패턴도 동일하게 정리를 해봐야겠다.! 출근 준비에 대한 것을 큰 카테고리? 로 보면 알람 -> 씻기 -> 옷입기 -> 이동수단 으로 볼 수 있다. A와 B의 준비 단계를 보자! A : 알람 -> 씻기 -> 옷입기 (원피스) -> 이동수단 (자동차) B : 알람 -> 씻기 -> 옷입기 (파란티) -> 이동수단 (버스) 이다.! 여기서 A,B가 다르지 않고 동일한 과정은 빨간색으로, 다른 과정은 파란색으로 표시를 해보았다. 이를 코드로 표현을 해보자.! "A" 의 준비 과정 class ReadyToWorkA { public void start(TextView tv) { alarm(tv); wash(tv); clothes(t..

[디자인패턴] 퍼사드 패턴 | Facade Pattern | 안드로이드 예제

오랜만에 또 디자인패턴.! 오늘은 퍼사드 패턴을 해보려고 한다. 먼저, 위의 펭수처럼 출근을 하려면 필요한 단계가 있다. 나의 경우에는 알람으로 기상 -> 씻기 -> 옷입기 -> 전철을 타서 출근을 하는 단계를 거친다. 각 단계를 코드로 보면.. "알람" - 알람을 듣고 일어나거나.. 그냥 꺼버리는 경우.. ㅠ class Alarm { public void Wake(TextView tv){ tv.setText( (String) tv.getText() + "\nwake!" ); } public void OFF(TextView tv){ tv.setText( (String) tv.getText() + "\nalarm off!" ); } } "씻기" - 씻고 가거나 그냥 안씻고 가는 경우.. class Wash..

[Design Pattern] 어댑터 패턴 | Adapter Pattern

먼저, 위키 백과가 정의 하고 있는 어댑터 패턴은 어댑터 패턴(Adapter pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다. (출처 :위키백과) 쉽게 말하면 ... 어댑터 패턴은 위의 짤에 나오는 인형탈과 같이 사람이 어떤 캐릭터를 표현하고자 할 때 사용하는 것!! 이렇게 A가 B의 역할을 하길 원할떄, 사용하는 것이 어댑터 패턴으로 생각하면 쉬울 것 같다. 오리와 가짜 오리, 가짜 오리가 오리처럼 행동하는 것을 어댑터 패턴에 적용시켜 보았다. 오리는 날수 있고, 꿱! 하고 말을 한다. 말을 하는 것, 나는 것으로 각 오리, 가짜 오리를 구성하게끔 만들었다. 이것을 안드..

[디자인패턴] 커맨드 패턴 | Command Pattern | 안드로이드 예제

우는 아이도 보면 울음을 그친다는 마법의.... 리모컨! 이 떠오르는 이번 디자인 패턴!! 은 바로바로바로!!!! 커맨드 패턴 입니다.! 커맨드 패턴이란 ? 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다. 출처 : 위키백과 쉽게 다시 설명을 하자면! 조명을 컨트롤 할 수 있는 리모컨이 있다고 생각해보자. 아래 그림에서 빨간 동그라미가 쳐져있는 버튼을 누르면 조명이 켜지게 된다. 이때 리모컨에 대한 구현을 어떻게 하면 좋을까 ? Q. 각 버튼에 대해 기능을 지정해 주면 되지 않을까? 1번, 2번, 3번 ... 버튼들에 대해 각각의 기능을 정의해주면 되지 않을까 생각해본다. if(..

[Android] Jack server 빌드 에러

안드로이드 빌드하다보면 가끔 발생하는 Jack server 빌드 에러들과 해결법을 정리해두었습니다. #1. Try 'jack-diagnose' FAILED: /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (pre..

WORK/Android 2021.05.11

[Android] 빌드 에러 FAILED: out/target/product/apollo/abl.elf

리눅스에서 안드로이드 소스 빌드 중 나타난 에러입니다. ▲ 에러 메시지 build out/target/product/apollo/abl.elf FAILED: out/target/product/apollo/abl.elf /bin/bash -c "make -j4 -C bootable/bootloader/edk2 BOOTLOADER_OUT=../../../out/target/product/apollo/obj/ABL_OBJ all VERIFIED_BOOT=1 VERIFIED_BOOT_2=0 USER_BUILD_VARIANT=0 CLANG_BIN=/home/sdduser/code/android_O/prebuilts/clang/host/ linux-x86/clang-4053586/bin/ TARGET_ARCHITE..

카테고리 없음 2021.04.14

[Android] storage 접근 권한 요청, 처리

Android Permission 중 사용자에게 권한 요청을 하고 허가 받아야 하는 것들이 있다. 그 중에 한가지가 storage 읽고 쓰는 권한이다. 나는 캡처 하는 동작이 있을 때, 파일이 저장 될 때 마다 체크해주는 것을 하기 위해 권한을 요청했었다. 권한 요청하는 방법! ▲ 앱 권한 받기 (main.java) main으로 시작하는 activity 가장 위에 해주는 것이 좋은 것 같다.! 그렇게 해야 원하는 동작을 정상적으로 할 수가 있다. // storage permission if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != ..

WORK/Android 2021.04.13

[Android] 안드로이드 제공 vector 이미지 추가 | 안드로이드 버튼 아이콘 추가

App 에 이미지 넣기 위해서 xml 파일이 필요합니다. 안드로이드에서 제공해주는 이미지 xml 파일 만드는 방법! 안드로이드 스튜디오에서 drawable 오른쪽 마우스 클릭 > New > Image Asset or Vector Asset ▲ Image Asset 이 옵션은 런처 아이콘 / 액션바, 탭 아이콘 / 노티피케이션 아이콘 / TV 배너 들의 아이콘을 만들기 위함이다. 한 아이콘을 이용해 크기별, 모양별(원, 네모 등 런처 아이콘) 로 여러 파일을 만들 수 있다. 2. Vector Asset 이 옵션은 앱 내에서 사용하는 아이콘을 생성 할 수 있다. Local file을 선택하고, SVG나 PSD 파일을 이용해서 다른 이미지도 생성이 가능하지만! 나는 안드로이드에서 기본으로 제공해주는 Clip ..

WORK/Android 2021.04.09

[Linux] Android 빌드 환경 구축

Linux에서 안드로이드 빌드를 위한 환경 구축 방법입니다. ▲ 필요한 프로그램 설치 - curl, repo 설치 $ sudo apt-get install curl $ sudo apt-get install repo // 14에서는 설치 안됨 - jdk 설치 1. repo 추가 $ sudo add-apt-repository ppa:openjdk-r/ppa $ sudo apt-get update 2. java(jdk) 다운로드 $ sudo apt-get install openjdk-8-jdk $ sudo apt-get install openjdk-7-jdk 3. 버전 선택해서 사용하는 옵션 ( 참고로 알고있음 됩니당) $ sudo update-alternatives --config java $ sudo up..

WORK/Linux 2021.04.08
728x90
반응형