Android Study 111

Jdk 설치 , 환경변수 설정

◎준비물 - jdk 설치 파일 ◎Step 1. jdk 파일을 설치해 준다. 2. 환경변수 설정을 해준다. => 윈도우 검색창에(window10) "환경" 을입력하면, [시스템환경변수편집] 이 뜬다. 어째뜬, 시스템 속성 에만 들어가면된다. 3. 시스템 속성 -> 환경변수 4. 시스템 변수 -> 새로 만들기 => 변수이름 : JAVA_HOME / 변수 값 : C:\Program Files\Java\jdk폴더 5. 컴퓨터 재시작 6. cmd 창 띄우고, javac 를 입력 해 주었을때 긴 문장이 나오면 설정 완료 - 끝 -

Android Study 2020.07.07

App.Apk파일 -> Decompile (Window)

◎준비물 - testApp.apk : decompile 할 예제 apk 파일 - dex2jar Tool : dex -> jar 변환 해줄때 사용 - jd-gui-0.3.3.window : 변환된 jar 파일을 열어볼때 사용 ◎Step 준비물확인 ▶ apk->zip 변경 후 해제 ▶ dex->jar 변환 ▶ jd-gui로 jar파일 오픈 끝 ◎Detail Step 1. dex2jar 툴이 제대로 실행되는지 확인 => 윈도우 -> cmd 창 -> javac 입력, 영어가 길게 뭐라뭐라 나온다 -> 사용가능상태 => 실행할수없다는 짧은 문장이 나온다-> 사용불가능 상태, jdk 설치후 환경변수를 지정해주어야함 *참고는 저의 티스토리 71 2. jd-gui 툴이 실행되는지 확인 => 실행파일이, 실행되는지 안되..

Android Study 2020.07.07

Android Studio 주석/코드 커스텀 양식 자동생성

[목표 : 주석 단축키로 아래의 형식 자동 생성하기](단축키는 기본적으로 Ctrl+J ) /** * @author 85chong * @since 2020-03-02 * @comment : **/ 1. 창띄우기 - file > settings > Editor > Live Templates 2. 메뉴진입 - 설정창을 보면 여러가지 메뉴가 나오는데 (Android , AndoridComments , AndroidLog ...) 그 중에 AndoridComments 메뉴의 좌측 화살표를 눌러서, 하위 메뉴를 오픈한다. 3. 셋팅 - 1. 우측에 작은 + 버튼을 클릭하면 "Live Template" / "TemplateGroup.." 메뉴가 나오는데 LiveTemplate 클릭한다. - 2. 설정창 하단에 보면 ..

Android Study 2020.03.02

Android Push 진동 제어

안드로이드 푸쉬 할때 진동을 주는부분을 제어하기 위해 아래의 코드를 넣는 경우가있다. channel.setVibration(new long[]{100,100,100,}); notificationCompatBuilder.setVibrate()new long[]{100,100,100,}; 내 경우에는 모든 코드가 먹히지 않았다. 이유는 아직 밝히지 못함 그래서 생각한 부분은 구분지을 필요가 없다면, 강제로 진동을 직접 제어하는 방법이 좋겠다 싶어, 이 방법을 사용하니 진동에 대한 시간이나 횟수를 제어할 수 있게 되었다. 혹시나 위의 코드로 진동이 제어가 되지 않을때는 모두 제거하고 아래의 코드를 쓰는것이 더욱 효과적이다. Vibrator v = (Vibrator) getSystemService(Context..

Android Study 2020.02.26

Android Keystore 데이터 보안에 대한 테스트

* 내가 알고있는 Keystore 동작 Keystore 데이터 보안은 앱이 구글에 등록되어있는 앱을 기준으로 동작한다. 생성할때 해당 패키지를 포함한 container? 에 서명키를 저장한다(어딘지는 불명확) 위와 같은 원리로 암호화값 + Keystore = 이중 암호화 이런식으로 적용하여 2중 보안을 하는 동작방법을 사용해보았다. * 정확한 동작에 대한 해답은 찾지 못했지만 몇가지 테스트로 동작을 추측해보았다. - (구글앱스토어 등록된)A프로젝트 co.a.b패키지 => Keystore 생성 암호화(dataKeyA) => dataKeyA 저장하기 => 저장된 dataKeyA가져오기 => Keystore 복호화 => 결과 : 복호화 완료 - (구글앱스토어 미등록된)B프로젝트 co.c.d패키지 => data..

Android Study 2020.02.25

android viewBinding 방식(Java,kotlin)

간단한 예제로 a.xml 파일에 TextView id 값이 tv_text 를 클릭 했을때 tv_text 에 "hello" 를 적어보겠다. * 예전부터 사용하던 viewbinding 방식 java TextView tv_text = findViewById(R.id.tv_text); .... final TextView tv_text = findViewById(R.id.tv_text); tv_text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tv_text.setText("hello"); } }); * ButterKnife viewbinding 방식 java app > buildgradle 에..

Android Study 2020.02.22

CallbackListener interface 활용한 함수 동기화시키기

- MainActivity.java - Aclass.java 1. MainActivity 에서 Aclass 있는 funA()를 호츨한다. 2. Aclass 에 있는 funB()를 호출한다. 3. MainActivity 에서 funC()를 호출한다. *단 funB()는 10초후에 호출된다. 그럼 위의 상태는 현재 비동기식 상태라 출력하면 funA() funC() 10초후 funB() 이렇게 나옴, 위를 해결하기 위해서 onActivityResult()도 활용하거나, 아예 클래스를 변경해서 Aclass 에서 funB() funC() 를 모두 생성해서 로직을 바꾼다던가 하는 방법 들이있다. 그런데 이 방법등을 사용하게 되면 기존 로직이 흐트러지거나, 이 로직으 위해 다른 로직이 복잡해 질수도 있다. 그래서 c..

Android Study 2020.02.20

안드로이드 해상도 폴더별 dimens

dimens 폴더는 안드로이드에서 사이즈를 담당 하는 폴더로써, 폴더를 안드로이드에서 자체적으로 디바이스 사이즈에 맞는 폴더를 가져다 사용하는 것이며, 폴더별 담당하는 디바이스 화면은 아래와 같음. 보통 - xhdpi \ dimens.xml 아래의 장치는 normal - xhdpi \ dimens.xml을 변경할 때 화면 크기를 변경할 수 있습니다. Nexus 5X (5.2 "* 1080 * 1920 : 420dpi) nexus 6P (5.7 "* 1440 * 2560 : 560dpi) Nexus 6 (6.0 "* 1440 * 2560 : 560dpi) nexus 5 (5.0 ", 1080 1920 : xxhdpi) Nexus 4 (4.7 ", 768 * 1280 : xhdpi) Galaxy Nexus ..

Android Study 2020.01.14

안드로이드 Background 상태 체크하기

어떤 글을 보면 구글에서 만든 라이브러리를 사용하면 쉽다고 하여 직접 라이브러리를 사용하여 어떨때 호출이 되는지 확인해 보았다. implementation 'android.arch.lifecycle:extensions:1.1.1' 해당 라이브러리 추가후 로그를 찍어본결과, activity lifecycle 과 같은 패턴이었다. 그냥 activity 라이브러리를 사용하는것이 나을듯 하다. background 일때만 호출하는 부분을 찾아내야하는데 위의 라이브러리는 actvity lifecycle 처럼 해당 activity 가 종료될때도 호출된다. 결국 이 것도 로직을 따로 짜야한다.

Android Study 2019.12.18