VersionCodenameAPIDistribution2.3.3 - 2.3.7Gingerbread100.2%4.0.3 - 4.0.4Ice Cream Sandwich150.3%4.1.xJelly Bean161.2%4.2.x171.9%4.3180.5%4.4KitKat199.1%5.0Lollipop214.2%5.12216.2%6.0Marshmallow2323.5%7.0Nougat2421.2%7.1259.6%8.0Oreo2610.1%8.1272.0%2018년 7월 23일까지 7일 동안 수집된 데이터 배포율이 0.1% 이하인 버전은 표시되지 않습니다.
눈에 띄는 변화들 1. Background Service 의 GPS 수신 빈도가 눈에 띄게 적어졌다.- 한 시간안에 몇번 하지 못한다. Foreground 의 GPS 는 문제없다. 2. 네트워크 Exception 추가- connect(...) 가 실패할 경우, send(..) 메서드가 SocketException 을 발생한다. 3. AbstractCollection 의 Null Pointer Exception Return - 기존의 AbstractCollection.removeAll(null) 과 .retain(null) 은 null Exception 이 없었지만, 이제는 발생한다. 4. Shortcut 추가- INSTALL_SHORTCUT 의 암시적 브로드캐스트가ShortCutManager Class ..
리팩토링 이란? 나쁜 디자인의 코드를 좋은 디자인 코드로 변경하는 과정 리팩토링 상황 예시 1. 아래와 같은 getUserInfoFromServerA() 라는 함수를 작성 1234567891011121314151617public void getUserInfoFromServerA(String userID) { new CustomAsyncTask().execute(userID, new CallBackListenerA() { @Override public void onSuccess(Result rst) { // Success Code } @Override public void onFailed(String failedMsg) { // Failed Code } });} class CustomAsyncTask ex..
Data Binding 이란? 사전적 의미는 아래와 같다. Data : 데이터 Binding : 묶음 즉, 데이터를 묶는다는 것 데이터를 뭘 묶는다는건가?xml 의 컴포넌트 요소들과 java를 묶어주는 것. Without Data Binding ...... 기존에 데이터 바인딩없이는 아래와 같이 썼을 것이다. xml javamBtn1 = (Button) findViewById(R.id.btn_1); mBtn2 = (Button) findViewById(R.id.btn_2); mBtn3 = (Button) findViewById(R.id.btn_3); // ... endless findViewById... xml 에서 선언하고.. java 에서 findviewbyid 로 찾고...선언하고..찾고..매칭시켜..
일반적인 변수 선언 private var mMainPresenter : MainContract.Presenter = MainPresenter(this) 우리는 일반적으로 위와 같이 선언하게 된다. 선언시 초기화를 하지 않는다면 이 선언의 문제점은 선언시 반드시 초기화해야 한다는 것에 있다. 초기화 문을 제거한다면 아래와같은 에러를 볼수있을것이다. 해결책은? private lateinit var mMainPresenter : MainContract.Presenter위와 같이 lateinit 키워드를 붙이면,선언시 반드시 초기화 하지 않아도 된다.
getCallingActivity() if(getCallingActivity().getClassName().equals(MainActivity.class.getName())) { /** Called From Main Activity */ } else { /** Called From Other Activities */ } * 주의사항 * startActivityForResult(..) 로 호출한 곳에서는 null 리턴될것임..
문제 상속받기 위해 아래와 같이 코드를 작성해보자.class BaseResponse { var rstCode:Int = 0 }class TestResponse : BaseResponse() { } TestResponse Class 가 BaseResponse Class 를 상속받게 되어있다.그러나 이대로 실행하게 되면 아래와 같은 에러메세지를 만날 수 있다. This type is final, So it cannot be inherited from.. 왜 ? Kotlin 에서는 기본적으로 모든 Class 가 final 이다.따라서 상속하여 재정의 하려면, 상속을 허용하는 open 키워드를 붙여주어야 한다. 해결 아래와 같이 BaseResponse Class 에 open 키워드를 삽입해준다. open cla..
android { compileSdkVersion 24 buildToolsVersion '25.0.0' defaultConfig { .... setProperty("archivesBaseName", "test-$versionName") } signingConfigs { ... } buildTypes { ... } ... } setProperty("archivesBaseName", "test-$versionName") 요롷게 하면 app-debug.apk 대신.. test-(versionName)-debug.apk 파일이 생성된다. ( 2018.05.17. 추가 ) TimeStamp 찍는 법 import java.text.DateFormat import java.text.SimpleDateFormat an..
2018/04/30 - [Computer/Android&iOS] - ( Android ) Kotlin - 1. 시작하기2018/05/02 - [Computer/Android&iOS] - ( Android ) Kotlin - 2. View 에 대해 알아보기2018/05/04 - [Computer/Android&iOS] - ( Android ) Kotlin - 3. implement (구현) 받기 함수 선언 fun addAB(a:Int, b:Int):Int{ return a + b } fun 함수명(변수명:변수타입...):리턴타입 {...} 반복문 -- JAVAArrayList arrayList = new ArrayList(); for (String s : arrayList) { Log.d("TAG", "s..
2018/04/30 - [Computer/Android&iOS] - ( Android ) Kotlin - 1. 시작하기2018/05/02 - [Computer/Android&iOS] - ( Android ) Kotlin - 2. View 에 대해 알아보기 상속 (extend) Kotlin 의 상속은 아래와 같았다.class MainActivity : AppCompatActivity() { ... } 구현 (implement) implement 는 아래와 같이 상속뒤에 콤마 (,) 로 구현한다.class MainActivity : AppCompatActivity() , View.OnClickListener { ... } 몸체 구현 implement 를 받게 되면 당연히, 메소드를 override 하라는 경..
- Total
- Today
- Yesterday
- 앵커브리핑
- Android
- IOS
- node.js
- 배열
- mysql
- GIT
- Phaser
- 뉴스룸
- 깃헙
- C
- 점유율
- nodejs
- git hub
- C언어
- Swift
- Asterisk
- 서버
- CentOS
- 안드로이드
- 리눅스
- xcode
- Kotlin
- linux
- 손석희
- Node
- 스위프트
- BBC 가쉽
- php
- 노드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |