본문 바로가기

AppDev

(16)
[ Android ] 안드로이드 기본정보 확인 ※ 안드로이드의 경우 모델별로 모델일련번호 시리얼 번호를 구하는 방법이 조금씩 달라확인할 때마다 본 문서를 업데이트 하는 방식으로 진행하려 한다.모델 명, 모델 번호, 시리얼 번호, 안드로이드 버전, 안드로이드 SDK를 확인하는 명령어이다. 1. Mac# 모델 명 확인# case [ Pixel 6 ], [ Galaxy S10+ ], [ Galaxy Note8 ], [ Galaxy A31 ]adb shell dumpsys settings | grep device_name | grep -v "wifi_p2p_device_name" | tail -1 | awk -F "value:" '{ print $2 }' | awk -F "default:" '{ print $1}' | sed 's/^[[:space:]]*/..
[ Android ] 안드로이드 루팅 1. 휴대전화 정보 확인2. 휴대전화 개발자 모드 활성화 및 설정 변경 ※ 만약 OEM 잠금 해제 항목이 보이지 않을 경우 다음 과정을 수행한다.3. 휴대폰 순정 펌웨어 다운로드 4. 휴대폰 순정 펌웨어 설치 및 루팅 펌웨어 생성가. 오딘 & 삼성 USB 드라이버 다운로드나. Magist 다운로드다. 루팅 펌웨어 생성 라. 안드로이드 다운로드 모드 진입 1). 휴대폰 종료2). 다운로드 모드 진입■ 홈버튼 있는 단말기 : 전원 + 홈버튼 + 볼륨하■ 홈버튼 없고 빅스비 있는 단말기 : 전원 + 빅스비 + 볼륨하■ 홈버튼/빅스비 둘 다 없는 단말기 : 전원 + 볼륨상 + 볼륨하※ 기종에따라 다운로드 모드 진입전 해줘야 하는 작업이 조금씩 다를 수 있다.Galaxy A23 의 경우 전원버튼을 클릭하여 실행 ..
[ Android ] 안드로이드 APK 디컴파일 오픈소스로 제공되는 안드로이드 디컴파일 도구를 소개한다.해당 글에서 아래 툴들의 용도는 다음과 같다.□ apktool : apk 파일의 리소스 파일 추출□ dex2jar : dex 파일 jar 파일로 변환□ jd-cli : jar 파일을 java 파일로 변환□ jadx : 리소스 파일 및 java 파일 추출개인적으로 apk 소스 분석을 위한 디컴파일용 툴은 jadx 하나로 해결된다.(나머지 툴들은 리패키징 등 다른 용도로 사용)apk파일 다운로드 : https://m.apkpure.com/kr/search○ apktool 디컴파일1. Mac/bin/bash# apktool 설치 폴더 생성mkdir -p ~/App/Tools/AST/SAST/# apktool 다운로드curl -L -o ~/App/Tools..
[ Android ] 안드로이드 무선 디버깅 1. Mac/bin/bash# 기기가 연결 되었는지 확인adb devices# 기기 명 저장export DEVICE_TARGET=$(adb devices | grep -v offline | tail -n +2 | awk '{ print $1 }' | head -1)# 기기 Wifi IP 저장export DEVICE_IP=$(adb -s $DEVICE_TARGET shell ifconfig | grep 192 | awk -F ":" '{ print $2 }' | awk '{ print $1 }')# 기기 연결adb connect $DEVICE_IP:5555
[ Android ] 안드로이드 APK 파일 추출 1. Mac# 기기가 연결 되었는지 확인adb devices# 기기 명 저장export DEVICE_TARGET=$(adb devices | grep -v offline | tail -n +2 | awk '{ print $1 }' | head -1)# e.g. export PACKAGE_NAME=com.sample.todoexport PACKAGE_NAME=[ Your Package Name ]# 명령어 실행 폴더에 $PACKAGE_NAME.apk 이름으로 apk 파일 저장adb -s $DEVICE_TARGET pull $(adb -s $DEVICE_TARGET shell pm list packages -f | grep "$PACKAGE_NAME$" | awk -F ":" '{ print $2 }' | ..
[ AppDev ] 모바일 프록시 적용 1. Android 2. IOS
[ Android ] 기종 별 사이즈 대응 안드로이드는 수많은 기종이 있고 기종마다 지원되는 해상도가 다르다.예를들어 Pixel 폰 해상도에서 marginTop 을 250dp 주었을때는 다음과 같다. activity_main.xmlandroid:layout_marginTop="250dp"똑같이 marginTop을 "250dp" 주었지만 Pixcel 폰은 가운데에 위치한 반면 Nexus S 폰은 상대적으로 아래 위치하고 있다.따라서 기종마다 사용자가 느끼는 경험이 달라지고 기종에 따라 UI가 짤리는 현상도 일어난다. 이러한 기종별 사이즈를 대응하는 방법 중 dimens를 활용하는 방법이 있다.안드로이드의 리소스 폴더에 values-h720dp 를 생성한다.해당 리소스 폴더에 들어가는 리소스 파일은 높이가 720dp ..
[ AppDev ] 모바일 해상도 정리 name : 모바일 모델 명phys width : 디바이스 가로 실제 픽셀 수phys height : 디바이스 세로 실제 픽셀 수css width : 스크린의 해상도를 디바이스 픽셀 비율에 맞추어 조정한 가상의 가로 해상도css height : 스크린의 해상도를 디바이스 픽셀 비율에 맞추어 조정한 가상의 세로 해상도pixel ratio : 디바이스의 물리적 픽셀과 CSS 픽셀의 비율을 나타내는 값(고해상도 디스플레이에서 적절히 렌더링하기 위해 사용)phys ppi : 디스플레이의 물리적 픽셀 밀도css ppi : 디스플레이의 가상의 픽셀 밀도aspect ratio : 화면 비율namephys.widthphys.heightcsswidthcssheightpixelratiophys.ppi..