728x90


RxAndroid



https://brunch.co.kr/@yudong/34


위의 링크를 따라하면서 모르는 것 찾아본 결과



1. JackOption?



https://developer.android.com/guide/platform/j8-jack?hl=ko


 Android는 Java 7 언어 기능 일체를 모두 지원하고, Java 8 언어 기능의 경우 버전에 따라 각각 다르게 부분적으로 지원함. 이 페이지에서는 사용할 수 있는 새로운 언어 기능, 이러한 기능을 사용할 프로젝트를 올바르게 구성하는 방법 및 발생할 수 있는 알려진 문제에 대해 설명합니다.

참고: Android용 앱을 개발할 때에는 Java 8 언어 기능을 사용하는 것이 가장 좋습니다. 프로젝트의 소스 및 대상 호환성 값을 Java 7로 유지할 수는 있지만, JDK 8을 사용하여 컴파일해야 합니다.

Java 8 언어 기능에 대한 지원 기능을 사용하려면 Jack이라는 새 컴파일러가 필요합니다. Jack은 Android Studio 2.1 이상 버전에서만 지원됩니다. 따라서 Java 8 언어 기능을 사용하려면 Android Studio 2.1을 사용하여 앱을 빌드해야 합니다.



그런데 따라서 해보니까 "Could not find method jackOptions() for arguments" 컴파일 에러가 났다.


https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html




Jack 툴체인은 지원 중단됩니다. 해당 프로젝트에서 Jack을 사용하는 경우 Android Studio의 기본 툴체인에 내장된 Java 8 지원을 사용하도록 마이그레이션해야 합니다. 

(...)

Jack을 비활성화하고 기본 툴체인으로 전환하려면 모듈의 build.gradle 파일에서 jackOptions 블록을 제거하기만 하면 됩니다.

android {
   
...
    defaultConfig
{
       
...
       
// Remove this block.
        jackOptions
{
            enabled
true
           
...
       
}
   
}

   
// Keep the following configuration in order to target Java 8.
    compileOptions
{
        sourceCompatibility
JavaVersion.VERSION_1_8
        targetCompatibility
JavaVersion.VERSION_1_8
   
}

} 



jackOptions 부분만 제거하니 에러가 사라짐



-------------------------------------------------------------------------------------------------------------------


https://brunch.co.kr/@yudong/35



* for문 없이 반복적인 동작 수행 가능 (이에 대한 방법은 다양)


- range(X,N)  (X부터 N까지)

- map()은 여러개 추가 가능

- subscribe()는 마지막 결과를 출력하기 위함


*람다표현식의 인자 생략 가능

원래: subscribe(text -> guguResult.append(text)) 

생략: subscribe(guguResult::append)



* Java는 객체지향 언어이지, 함수형 언어가 아님.

 Java8에서 람다표현식 같은 함수형 프로그래밍 도구가 추가 되었음




-------------------------------------------------------------------------------------------------------------------

https://brunch.co.kr/@yudong/36





728x90

'Dev > Android' 카테고리의 다른 글

[Andorid] Resource(R.id / R.drawable) 를 문자열로 가져오기  (0) 2019.04.26
[Android] Network 기능 구현 관련  (0) 2018.10.02
[Android] RxAndroid & RxJava  (0) 2018.10.01
Fabric - Crashlytics  (0) 2018.08.10
Listview  (0) 2018.07.03

+ Recent posts