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

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

Error) Cannot Resolve Symbol 'R'

Android/Android Studio 사용법
반응형

1) Build 메뉴 > Clean Project


2) Build 메뉴 > Rebuild Project


3) Java 나 xml 을 제외한 나머지 설정 파일들 특히 Manifest 파일에 오타 점검


기타 참고, http://kerneler.tistory.com/4

반응형

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

DDMS 사용  (0) 2018.05.10
SQlite 로 DB 접속 및 관리  (0) 2018.05.09
클래스 import 자동화 하기  (0) 2018.05.08
Chrome Postman 설치  (0) 2018.05.07
res.Drawable 에 Image 추가  (0) 2018.05.07