StoryCode

안드로이드 개발은 안드로이드 스튜디오에서

Android/Android Studio 사용법
반응형

구글이 이클립스 지원을 중단하고 안드로이드 스튜디오를 미는 모양새라서

안드로이드 개발은 안드로이드 스튜디오를 사용하는 것을 추천.

반응형

'Android > Android Studio 사용법' 카테고리의 다른 글

SQLite DB 를 PC 에 저장하기  (0) 2018.05.10
adb 명령  (0) 2018.05.10
DDMS 사용  (0) 2018.05.10
SQlite 로 DB 접속 및 관리  (0) 2018.05.09
Error) Cannot Resolve Symbol 'R'  (0) 2018.05.09

기본 동작 구조

Android/FCM with Android Studio
반응형

1. 개발자가 Firebase 기반의 App 을 제작한다.


2. 모바일 사용자는 그 App 을 설치한다.


3. 그러면 그 App 을 설치한 모바일은 동일한 그룹 ( = User Segment ) 으로 묶였다고 생각하면 되며, User Segment 단위로 메시지를 보낼 수 있다.


4. 또한 각 모바일 디바이스마다 고유한 Token 이 생겨서, 그 Token 으로 메시지를 전송할 수 있다.

반응형

안드로이드 기기의 진동/벨 모드 여부

Android/Programmable Function
반응형

1. 모드 읽기

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT : 사일런트 모드일 경우

audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE : 진동모드일 경우

audioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL : 벨 모드일 경우


2. 모드 변경하기

audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);  //벨

audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);  //진동

audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); //무음




반응형

안드로이드 기기의 핸드폰 번호/ID 가져오기

Android/Programmable Function
반응형

A. 전화번호부 가져오기


1. Manifest 에 권한 등록

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.READ_CONTACTS" />


2. Code

TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext().getSystemService(getApplicationContext().TELEPHONY_SERVICE);


String phoneNum = telephonyManager.getLine1Number();


B. 내 전화 번호 가져오기


1. Manifest 에 권한 등록

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

2. 

TelephonyManager telManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

PhoneNum = telManager.getLine1Number();

if(PhoneNum.startsWith("+82")) // 국제번호(+82 10...)로 되어 있을경우 010 으로 변환

{

    PhoneNum = PhoneNum.replace("+82", "0");

}



C. 내 Device ID 가져오기

1. Manifest 에 권한 등록

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

2. 

TelephonyManager telManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

deviceid = telManager.getDeviceId();


반응형

'Android > Programmable Function' 카테고리의 다른 글

안드로이드 기기의 진동/벨 모드 여부  (0) 2018.05.11

SQLite DB 를 PC 에 저장하기

Android/Android Studio 사용법
반응형

1. View > Tool Windows > Device File Explorer 를 실행.


2. 우측에 Explorer 에서 /data/data/개발중인AppNameSpace/database 에 db 가 보통 존재.


3. db 에서 우측 클릭후 Save As 로 PC 에 저장

반응형

'Android > Android Studio 사용법' 카테고리의 다른 글

안드로이드 개발은 안드로이드 스튜디오에서  (0) 2018.05.11
adb 명령  (0) 2018.05.10
DDMS 사용  (0) 2018.05.10
SQlite 로 DB 접속 및 관리  (0) 2018.05.09
Error) Cannot Resolve Symbol 'R'  (0) 2018.05.09

날짜 처리 관련

Database 관리/SQLite
반응형

1. 오늘 날짜

SELECT DATETIME('NOW');


2. 오늘 날짜를 CHAR(14) 로 변경하기

SELECT STRFTIME('%Y%m%d%H%M%S', DATETIME('NOW'), 'localtime');

반응형

adb 명령

Android/Android Studio 사용법
반응형

1. ADB란 무엇인가?

ADB(Android Debug Bridge)는 Unix shell을 제공합니다. 사용자는 emulator나 안드로이드 연결장비에 다양한 명령어를 보낼 수 있습니다.  


2. 실행방법

Windows) 시작 - 실행 - cmd 입력

                 adb.exe가 있는 위치로 가서 아래의 명령어를 사용함    

ex) cd:\Users\Felix\AppData\Local\Android\sdk\platform-tools   -> 이 경로를 찾는게 중요!


Mac) MacTerminal 실행

         adb가 있는 위치로 가서 아래의 명령어를 사용함


1) MAC설치 방법

terminal을 실행한 후 .bash-profile을 찾아봄

bas4-toronto01-70-50-182-31:~ sds$ ls -a

. AndroidStudioProjects

.. Applications

.CFUserTextEncoding Desktop

.DS_Store Documents

.Trash Downloads

.android Library

.atom Movies

.bash_history Music

.bash_profile OpusGitTest

.bash_sessions OpusSampleAppFinal

.eclipse Pictures

.emulator_console_auth_token Public

.gitconfig WebstormProjects

.gradle id_rsa

.oracle_jre_usage id_rsa.pub

.p2 is_rsa

.rnd is_rsa.pub

.vscode


.bash_profile 없다면?

.bash_profile을 생성(touch .bash_profile)

open bash_profile

open bash_profile을 통해 파일을 열기


.bash_profile 있다면


export PATH=${PATH}:/Users/sds/Library/Android/sdk/platform-tools


위의 내용을 입력(경로는 해당 PC마다 다른데 안드로이드 SDK 경로 - platform-tools를 넣으면 된다. (adb가 위치한 곳 입력)




3. 자주쓰는 adb 명령어

# 아래의 명령어는 adb가 있는 위치에서만 실행 가능함


1. Restart Android device

: 안드로이드 장비를 재시작한다.


adb reboot



2. Check android device connectivity

: 사용자 PC에 연결된 안드로이드 장비 혹은 애뮬레이터를 확인한다.


adb devices


3. connect a certain one device

: 2개 이상일 때는 특정기기로만 명령어로 보내야 한다.


adb shell -s [Serial Number] 명령어


4. install android application

: 앱 파일명을 이용해 안드로이드 apk를 설치한다.

ex) adb install c:\test.apk


adb install [FILENAME].apk

adb install -r [FILENAME].apk : 설치된 어플을 재설치(단 데이터 삭제는 불가)

adb install -s [FILENAME].apk : 메모리카드에 설치


5. Kill package name

: 패키지 명을 이용하여 구동중인 안드로이드 어플리케이션을 강제 종료 시킨다.


adb shell am force-stop [packagename] 



6. remove app

: 안드로이드 앱을 언인스톨하여 삭제한다.


adb uninstall pakagename


7. uninstall package

: 안드로이드 앱을 언인스톨하여 삭제한다.


adb uninstall pakagename



adb shell am force-stop packagename


8. list package app

: 안드로이드 장비에 설치된 모든 앱의 패키지명을 가져온다.


adb shell pm list packages -f


9. adb ls 

: 안드로이드 장비 중 해당 폴더의 리스트를 불러온다.


adb shell ls mnt/sdcard/document

adb shell (폴더위치)


4. 그외 명령어


시스템 기본정보: 하드웨어, 커널 등
cat /proc/version : 커널 버전
cat /proc/cpuinfo : 프로세서 정보, CPU타입, 모델 제조사 등
cat /porc/meminfo : 메모리 정보, 실제 메모리 및 가상 메모리
cat /proc/devices : 현재 커널에 설정되어 있는 장치 목록
mount : 마운트된 모든 장치 정보
df : 하드디스크 사용량
cat /porc/filesystems : 커널에 설정되어 있는 파일시스템 목록
cat /proc/swaps : 스왑 파티션의 크기와 사용량
cat /proc/interrupts : 장치가 사용중인 인터럽트(IRQ)목록 표시
cat /proc/ioports : 현재 사용중인 input/output 포트
cat /proc/partitions : 파티션 정보
cat /proc/uptime : 시스템이 얼마나 살아있었는지
cat /proc/stat : 시스템 상태에 관한 다양한 정보, CPU 사용 통계, 부팅이후 page fault 발생 횟수 등
cat /proc/zoneinfo : ZONEINFO
dmesg : 시스템 부팅시 나왔던 메시지
ps : 실행중인 프로세스 정보
ps -p - t : 프로세스와 쓰레드 목록
set or printenv : 환경설정값 출력


시스템 리소스 사용 현황
vmstat : 시스템 리소스 상황 모니터, CPU, I/O, Memory 등
cat /proc/diskstats : 디스크 utilization과 throughput. 즉 디스크 I/O현황
top : 시스템 프로세스 상황 모니터링/ 프로세스별 CPU사용량, 메모리와 스왑 사용량 등
procrank : 프로세스별 메모리
dumpsys meminfo [PID] : 해당 프로세스 메모리 상세 정보
cat /proc/[PID]/stat : 해당 프로세스에 대한 정보, 시작시간, 상태, CPU 사용량 등
cat /proc/[PID]/maps : 해당 프로세스의 메모리 맵 정보
cat /proc/vmstat : 버추얼 메모리 통계?
librank : 라이브러리별 메모리 사용량?


네트워크 관련
cat /proc/net/netlink : 네트워크 정보
netcfg : 네트워크 인터페이스와 IP주소 목록
netstat : 네트워크 연결상태 확인
nc : 네트워크용 cat 명령어(netcat)
ifconfig : 네트워크 인터페이스 설정 정보. 장치명을 파라미터로 받음. ip 주소. 서브넷마스크 등
tcpdump : 실시간 패킷 모니터링
iftop : 네트워크를 위한 top
route : 해당 호스트까지 연결하는 중간 경로 정보인 라우팅 테이블 표시
ping : 원격 호스트와의 연결 테스트
cat /proc/net/route : Route


안드로이드 제공
logcat : 로그캣 보기
pm : package manager의 약자. 패키지/permission/instrumentation/feature 목록, 패키지 설치/제거 등
am : activity manager의 약자, 액티비티 시작, Intent 브로드캐스팅, Instrumentation 시작, profiling 시작 / 중지 등
service : 안드로이드 서비스 목록 표시, 서비스에 명령 전달
monkey : 애플리케이션에 랜덤 이벤트 발생시킴. 사용자 이벤트, 시스템 이벤트의 무작위 발행
cat /data/anr/traces.txt : VM TRACES (쓰레드 덤프)
cat /proc/binder/proc/[PID] : 바인더 프로세스 상태
cat /proc/binder/xxx : 바인더 관련 정보(xxx은 transaction, transaction_log, failed_transaction_log, stats 등)
cat /data/system/packages.xml : 설치된 패키지 세팅 정보
setprop : system property 셋팅
getprop : 셋팅된 system property 목록 출력


종합 리포트 
dumpsys [service] : app/service 상태정보 덤프, 서비스별로 추가 파라미터 받을 수 있음
dumpstate : device 상태정보 덤프. 상태정보를 추출하는 여러 명령어들의 조합으로 구성
dumpcrash : 애플리케이션이 crach될 때의 상태정보 덤프
bugreport : logcat + dumpsys + dumpstat



5. 참조 

안드로이드 개발자 사이트

http://developer.android.com/intl/ko/tools/help/adb.html

http://developer.android.com/intl/ko/tools/help/shell.html



출처: http://superfelix.tistory.com/89 [☼ 꿈꾸는 도전자 Felix !]

반응형

SQLiteOpenHelp 의 onCreate 호출 시점

Android
반응형
[ 참조 ] http://ckbcorp.tistory.com/732, https://code.i-harness.com/ko/q/14de488

onCreate() 가 실행되는 조건은 
 1. getWritableDatabase() 혹은 getWritableDatabase() 가 실행될 때 
 2. 시스템 안에 open 으로 지정한 db 파일이 없다면 실행된다. 

 즉, "정말로 시스템 안에 디비가 없을 때 딱 한 번" 실행되는 거임. 그렇기 때문에,

3. 테이블을 새로 추가하거나 구조를 변경했다면, 
4. 당연히 onCreate() 에서 해결하려 하지 말고 
 5. onUpdate() 에서 해결하고 디비 버전을 올려야 된다.



반응형

DDMS 사용

Android/Android Studio 사용법
반응형

[ Android 3 ]

View > Tool Windows >Device File Explorer

View > Tool Windows >Android Profiler



[ Android 2 ]

File-> Settings

Menus and Toolbars -> Main Toolbar

AndroidMainActionToolbarGroup 선택 > [Add After] button 클릭

Main Menu - > Tools

Android 선택

Android Device Monitor 선택 > [Ok] button 클릭 > [ok] on Settings window 클릭



반응형

'Android > Android Studio 사용법' 카테고리의 다른 글

SQLite DB 를 PC 에 저장하기  (0) 2018.05.10
adb 명령  (0) 2018.05.10
SQlite 로 DB 접속 및 관리  (0) 2018.05.09
Error) Cannot Resolve Symbol 'R'  (0) 2018.05.09
클래스 import 자동화 하기  (0) 2018.05.08

SQlite 로 DB 접속 및 관리

Android/Android Studio 사용법
반응형

1. cmd 를 실행해서, platform-tools 디렉토리로 이동한다.

디렉토리가 잘 기억이 안다면, cmd 에서 "set | findstr android-sdk" 를 해보면 디렉토리를 찾을 수 있다.


2. adb devices 해보면 실행중인 가상 머신 종류가 보인다.

ex> emulator-5554 device


3. adb -s emulator-5554 shell 로 접속한다.


4. su 명령으로 root 로 접속한다.


5. sqlite 디비가 있는 폴더로 이동하기 위해,

- cd data/data 로 이동후, ls -al 해보면, 자신의 App 의 네임스페이스가 보인다.

- cd com.자신의app

cd databases


6. sqlite3 db명 으로 디비 접속.




반응형

'Android > Android Studio 사용법' 카테고리의 다른 글

adb 명령  (0) 2018.05.10
DDMS 사용  (0) 2018.05.10
Error) Cannot Resolve Symbol 'R'  (0) 2018.05.09
클래스 import 자동화 하기  (0) 2018.05.08
Chrome Postman 설치  (0) 2018.05.07