일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Python
- android architecture component
- FLUTTER
- 프로그래머스
- flutter firestore
- Django REST
- kodility
- UWP
- mfc
- 알고리즘
- 안드로이드 구글맵
- android push
- Kotlin
- C++
- livedata
- Android
- Java
- Flutter TextField
- RxAndroid
- 코틀린
- NDK
- Android P
- C
- Rxjava2
- C/C++
- Django REST framework
- RxJava
- dart
- Django REST Android
- 안드로이드
- Today
- Total
목록Android (35)
개발하는 두더지
CPU가 메모리에 데이터를 저장할 때 어느 순서로 저장하는가에 따라서 리틀엔디안과 빅엔디안으로 나뉘게 됩니다.리틀엔디안(Little Endian)은 메모리의 첫 주소에 하위 데이터(데이터의 맨 오른쪽)부터 저장하고 빅 엔디안(Big Endian)은 메모리의 첫 주소에 상위 데이터(데이터의 맨 왼쪽)부터 저장합니다. 예를들어 int a = 0x12345678 을 저장한다고 할 때 아래와 같이 저장됩니다. 타입 메모리 ( int는 4byte 이므로 1byte씩 저장 ) 리틀엔디안 0x78 0x56 0x34 0x12 빅엔디안 0x12 0x34 0x56 0x78 리틀엔디안의 경우 저장할 때 뒤집혀서 저장했기때문에 가져올 때는 다시 되돌려서 가져옵니다.- 1byte를 가져오는 경우 0x78- 2byte를 가져오는..
Error:Cannot fit requested classes in a single dex file.Try supplying a main-dex list. # methods: 72477 > 65536 안드로이드 빌드할 때 위와 같은 에러가 발생한다면? minSdkVersion 이 21 이상인 경우build.gradle 파일에서 multiDexEnable 를 true로 설정하면 됩니다.android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } ... } minSdkVersion 이 20 이하인 경우build.gradle 파일에서 multiDexEnable 을 true로 설정하고 multidex 지원 라이브..
NDK의 경우 LP64 를 사용해서 타입의 크기가 아래와 같다 리눅스 계열에서 x64 컴파일러로 LP64를 사용하고, Visual Studio에서 x64 컴파일러로 LLP64 를 사용한다.32bit 64bit (LP64 vs LLP64)int 4byte int 4bytelong 4byte long 8byte vs 4bytesize_t 4byte size_t 8bytepointer 4byte pointer 8byteoff_t 4byte off_t 8bytelong long 8byte long long 8byteoff64_t 8byte off64_t 8yte Target API Set Higher Than Device APIThe target API level in the NDK has a very diff..
Android Architecture Components ViewModel이란? ViewModel 클래스는 UI 관련 데이터를 저장하고 관리하기 위해 설계되었습니다.즉, 스크린 회전 같은 상태 변화에도 데이터가 보존될 수 있도록 허용해줍니다. 안드로이드 프레임워크는 UI 컨트롤러인 액티비티와 프래그먼트의 생명주기를 관리합니다.프레임워크는 특정 사용자 동작 또는 완전히 제어할 수 없는 디바이스 이벤트에 대한 응답으로UI 컨트롤러를 destroy하거나 다시 re-creates 하도록 결정합니다. 만약 시스템이 UI 컨트롤러를 destory하거나 re-creates한다면 별도로 저장되지 않은 데이터를 잃게 됩니다.여러분의 앱이 사용자의 리스트를 포함하고 있다고 생각해봅시다. 만약 액티비티가 상태 변경으로 재 ..
targetSdkVersion이 "P"로 설정된 경우 앱에 영향을 미치는 주요 변경사항 포그라운드 서비스 권한포그라운드 서비스를 사용하려면 FOREGROUND_SERVICE 권한을 요청해야함권한없이 서비스를 시작하면 SecurityException이 발생 Bouncy Castle 암호화 지원 중단Bouncy Castle가 제공하는 여러 암호화가 중단되고 Conscrypt가 제공하는 암호화로 대체됨 Build.serial에 대한 직접 액세스 제거READ_PHONE_STATE 권한 요청 이후, Android P [ API 28]에 추가된 Build.getSerial() 을 사용 WebView 데이터 디렉토리 공유 불가앱이 여러 프로세스에서 단일 WebView 데이터 디렉토리를 공유할 수 없음 앱의 데이터 디..
Kotlin + firebase(FCM) 을 이용하여 Push Notification 구현하는 방법을 알아보겠습니다. 1. 코틀린을 사용할 것이므로 코틀린 프로젝트로 생성 2. Tools -> Firebase -> cloud messaging 3. Firebase에서 직접 프로젝트를 생성connect to firebase 버튼을 클릭하여 자동으로 firebase 프로젝트를 생성합니다. google-services.json 파일을 다운받아 app/ 에 복사해줍니다. 4. add FCM to your app build.gradle ( project level )dependencies { ... // NOTE: Do not place your application dependencies here; they b..
안드로이드에서 제공하는 뷰를 상속받아 커스텀 뷰를 만들 때는 뷰가 그려지는 방법에 대해 이해하는 것이 중요합니다.onMeasure() 뷰의 크기를 정함onDraw() 뷰를 그림 onMeasure() 의 파라미터int widthMeasureSpec, int heightMeasureSpec이 2개의 값은 부모컨테이너에서 정한 가로, 세로의 크기이고, View.MeasureSpec 의 값입니다. 결국 이 크기 값으로 onDraw()에서 그려지게 됩니다.@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Try for a width based on our minimum int minw = getPaddingLef..
Jar 파일 내에서 다른 Jar 파일의 클래스를 참조해야 할 수도 있습니다. 하지만 Jar 파일 안에 또 다른 Jar 파일을 넣을 수는 없습니다. 왜냐하면 Class-Path 는 Jar 파일 내의 Jar 파일이나 인터넷 프로토콜을 통해 액세스 할 수 있는 클래스가 아니라 로컬 네트워크의 클래스 또는 Jar 파일을 가리킵니다. Jar 내부에서는 Class-Path를 사용하여 내부의 Jar에서 클래스를 로드하는 방법을 알지 못하기 때문입니다.Adding Classes to the JAR File's Classpath 그럼 어떻게 하나의 Jar 파일안에 모든 dependencies 를 포함시키는 것인가?Jar 를 unpackaging 하여 class 목록을 추출하고 Jar 파일을 만들 때 모든 class 를 ..