전체 글 426

[Android] 인앱 개발에 대해 알아보자 (실전)

Android 인앱 개발에 대해 알아보자 인앱 실전!! 1. SDK/extras/google/play_billing/IInAppBillingService.aidl -aidl파일 복사 2. SDK/extras/google/play_billing/samples/TrivialDrive/src/com/example/android/trivialdrivesample/util -util파일 복사 3. 복사 폴더위치 프로젝트/apps/src/main/aidl/com/android/vending/billing/IInAppBillingService.aidl 프로젝트/apps/src/main/java/com/yj/consulting/inapp/(util파일들) 4. AndoridManifest.xml 수정 5. Applic..

안드로이드 2022.10.20

[Android] 인앱 결제(inapp billing) 순서

Android 인앱 결제(inapp billing) 순서 1. 구글 인앱 빌링 라이브러리 설치 및 임포트 2. aidl, util부분 가져온다. 3. 매니페트스트 수정 - -V2에 비해 AndroidManifest.xml이 쉬워졌습니다. 위와같이 빌링 관련된 권한만 추가해주면 됩니다. 4. 인앱 빌링 초기화 및 인벤토리 요청 static final int RC_REQUEST = 1001//IabHelper용 콜백 결과를 구분하기 위한 상수 private IabHelper mHelper; /* strPublicKey는 구글 개발자 콘솔 -> 출시 앱 선택 -> 서비스 및 API -> 라이선스 및 인앱 결제 라이선스 키를 사용하여 앱의 무단 배포를 방지할 수 있습니다. 이 키를 사용하여 인앱 결제로 구매한 ..

안드로이드 2022.10.20

[Android] 문자 보내기 (SEND_SMS)

문자보내기 EX) 1.Manifest 2.브로드캐스트 리시버 등록 3.브로드캐스트 @Override public void onReceive(Context mContext, Intent intent) { String action = intent.getAction(); if("android.provider.Telephony.SMS_RECEIVED".equals(action)){ /** * SMS메세지 파싱 */ Bundle bundle = intent.getExtras(); Object messages[] = (Object[])bundle.get("pdus"); SmsMessage smsMessage[] = new SmsMessage[messages.length]; for(int i = 0; i < mess..

안드로이드 2022.10.20

[Android] 코틀린 확장 함수(kotlin extention)에 대해 알아보자

[Android] 코틀린 익스텐션(kotlin extention)에 대해 알아보자 유용한 함수 🟩 sort() collection의 각 요소들을 정렬해줍니다. fun main(args: Array) { val a: MutableList = mutableListOf(3, 2, 1) a.sort() //a.sorted() 는 새로운 collection을 반환 println(a) val sorted = a.sortedByDescending { it } // 내림차순 println(sorted) //sortBy() : Object 의 특정 Property 들을 기준으로 정렬 val list = mutableListOf(1 to "a", 2 to "b", 7 to "c", 6 to "d", 5 to "c", 6 ..

[Android] 네비게이션(Navigation)에 대해 알아보자

[Android] 네비게이션(Navigation)에 대해 알아보자 # Navigation Component는 왜 등장 했을까? 기존 네비게이션 방식의 어려운 점들 Fragment Transaction(Lifecycle Dancing) 상황마다 목적지가 다른 Up and Back Action Passing Arguments Deep Links 위의 문제들로 인한 *Error-prone Boilerplate Code Error-prone : 발생하기 쉬운 오류 # 왜 Navigation Component를 쓸까? 우선 Navigation Component를 사용하면 여러 화면 (Fragment)를 하나의 Activity로 묶어서 그래프라는 개념으로 관리하게 된다. (Single Activity - Multi..

안드로이드 2022.09.22

[Android] 가비지 컬렉터(Garbage Collector), 참조(Reference)에 대해 알아보자

[Android] 가비지 컬렉터(Garbage Collector), 참조(Reference)에 대해 알아보자 # Java의 Garbage Collector 1. 힙(heap) 내의 객체 중에서 가비지(garbage)를 찾아낸다. 2. 찾아낸 가비지를 처리해서 힙의 메모리를 회수한다. # GC와 Reachability - Java GC는 객체가 Garbage인지 판별하기 위해서 Reachability라는 개념을 사용 - 어떤 객체에 유효한 참조가 있으면 'reachable', 없으면 'unreachable' - unreachable 객체를 가비지로 간주해 GC를 수행 - 유효한 최초의 참조가 있어야 하는데 이를 객체 참조의 root set # Reference - java.lang.ref는 Strong r..

Stack vs Heap

스택 VS 힙 # 메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드되어야 한다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공한다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간 1. 코드(code) 영역 2. 데이터(data) 영역 3. 스택(stack) 영역 4. 힙(heap) 영역 코드(Code) 영역 실행할 프로그램의 코드가 저장되는 영역 cpu는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다. 데이터(data) 영역 전역 변수와 정적(static)변수가 저장 프로그램의 시작과 함께 할당되며, 프로그램이 종료 되면 소멸 스택(stack) 영역 함수 호출과 관계되는 지..

안드로이드 2022.09.20

TextView Ellipsize end가 OS낮은 버전에서 많이 줄여질 때

# 문제 저는 안드로이드 OS 8.0이하에서 발생하였습니다. (실제 더 높아도 발생할지도..?) TextView에 ellipsize="end"를 주었고 maxLines="1"을 적용한 상황 해당 텍스트 = "문자열이 길어요길어요길어요길어요길어요" 8.0이하 텍스트뷰 : 문자열이... (나머지는 여백) 뷰크기는 늘어나 있었습니다. 다른 정상 텍스트뷰 : 문자열이 길어요길어요길어요... "길어요길어요길어요길어요길어요" 부분이 띄어쓰기 없이 길다 보니 단어 전체를 말줄임 하는 문제가 발생하였습니다 singleLine="true"로 적용하니 다른 정상 텍스트뷰와 같게 나옴! # 궁금 singleLine은 Deprecated로 되어진 것으로 알고 있는데, 추후에 문제가 없을지..?

안드로이드 2022.09.20