반응형

AAR파일을 프로젝트에 추가 및 설정하는 방법에 대해 알아보도록 하겠습니다.

 

AAR 파일을 프로젝트에 추가

aar파일을 프로젝트의 libs 폴더에 복사합니다. 만약 폴더가 없다면 생성합니다.

your_project/
├── app/
│   ├── build.gradle.kts
│   ├── libs/
│   │   ├── MyTest-debug.aar
│   │   └── MyTest-release.aar
│   ├── src/
│   └── ...
├── build.gradle.kts
└── settings.gradle.kts

'

 

'settings.gradle.kts' 파일 수정

'settings.gradle.kts' 파일에서 'flatDir' repositories를 추가합니다:

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // 'libs' 폴더 설정  
        flatDir {
            dirs("libs")
        }
    }
}

rootProject.name = "your_project"
include(":app")

 

'build.gradle.kts' (Moduel :app) 파일 수정

... 생략 ...

dependencies {
    ... 생략 ...

    // AAR 파일 의존성 추가
    implementation(":MyTest-debug")
    releaseImplementation(":MyTest-release")
}

 

 

반응형
블로그 이미지

SKY STORY

,
반응형

개발중인 어플리케이션 프로젝트(.apk)를 라이브러리 모듈(.aar)로 변경해야 할 경우 설정방법을 알아보도록 하자.

프로젝트 이름은 'mytest'일 경우 다음과 같은 순서로 설정을 변경하도록 하자.

 

불필요한 소스 파일 제거

라이브러리 파일에 필요한 소스코드를 제외하고 나머지  파일들은 모두 제거하도록 한다.

 

AndroidManifest.xml 수정

application 요소와 앱 관련 설정을 제거하고, 라이브러리에서 필요한 설정만 남겨둡니다.

예를 들어, 권한이나 기본 설정 등을 유지할 수 있습니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mytest">

    <!-- 필요한 권한 및 기타 설정을 여기에 추가 -->
    <!-- 예: INTERNET 권한 -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 필요하다면 다른 권한도 추가 가능 -->
    
    <!-- 라이브러리에서 제공하는 특정 기능을 위한 설정 -->
    <!-- 예: 서비스나 리시버 등 -->
    <!--
    <application>
        <service android:name=".MyService" />
        <receiver android:name=".MyReceiver">
            <intent-filter>
                <action android:name="com.example.mytest.SOME_ACTION" />
            </intent-filter>
        </receiver>
    </application>
    -->
</manifest>

 

'build.gradle.kts' (Project: MyTest)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    alias(libs.plugins.android.application) apply false

    // 라이브러리 플러그인 추가
    alias(libs.plugins.android.library) apply false

    alias(libs.plugins.jetbrains.kotlin.android) apply false
}

 

'build.gradle.kts' (Module: MyTest)

plugins {
    // 어플리케이션 플러그인 제거
    //alias(libs.plugins.android.application)

	// 라이브러리 플러그인 추가
    alias(libs.plugins.android.library)

    alias(libs.plugins.jetbrains.kotlin.android)
}

android {
    namespace = "com.sample.mytest"
    compileSdk = 34

    defaultConfig {
        // applicationId 제거
        //applicationId = "com.sample.mytest"

        minSdk = 28

        // 버전정보 제거
        //versionCode = 1
        //versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
	
	... 생략 ...

    lint {
        targetSdk = 34
    }
	
	... 생략 ...
    
}

dependencies {
	... 생략 ...
}

 

'settings.gradle.kts' (Project Settings)

... 생략 ...

rootProject.name = "MyTest"	// 프로젝트 루트 이름
include(":MyTest")			// 모듈이름 정의

... 생략 ...

 

'libs.versions.toml' (Version Catalog)

[versions]
agp = "8.4.1"
kotlin = "1.9.0"
coreKtx = "1.13.1"
... 생략 ...

[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
... 생략 ...

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
# 라이브러리 플러그인 버전정보 추가
android-library = { id = "com.android.library", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

 

라이브러리 빌드 및 테스트

콘솔창에서 아래와 같이 아리브러리 빌드를 한다. 

./gradlew assembleRelease

 

 

반응형
블로그 이미지

SKY STORY

,

OpenCV 설정

개발/Android 2024. 5. 30. 13:34
반응형

OpenCV Android 프로젝트에 포함하려면 OpenCV Android SDK 직접 다운로드하고 프로젝트에 포함해야 합니다. 다음은 OpenCV SDK 다운로드하고 프로젝트에 추가하는 방법입니다.

 

OpenCV SDK 다운로드 및 설정

OpenCV 공식 웹사이트에서 OpenCV Android SDK 다운로드합니다.
https://github.com/opencv/opencv/releases

 

Android Studio의 프로젝트에 OpenCV 모듈 추가합니다.

File/New/import Module... 선택합니다. 

 

sdk 폴더를 선택합니다.

 

Module name은 다음과 같이 설정합니다.

 

프로젝트 루트에 sdk폴더를 만들고 타깃 디렉토리로 선택합니다.

 

OpenCV gradle sdk 설정을 MyProject gradle sdk 설정과 동일하게 맞추어 줍니다.

OpenCV 4.9.0버전의 경우 아래와 같이 주석처리하고 MyProject 의 sdk설정으로 맞추어 주었습니다.

 

settings gradle 설정에 아래와 같이 opencv 가 포함되었는지 확인합니다.

 

의존성을 추가합니다.

 

빌드 에러가 발생되지 않으면 성공입니다. 

 

 

반응형
블로그 이미지

SKY STORY

,
반응형

bundletool 설치 :

brew install bundletool

 

apks파일로 변환 :

bundletool build-apks --bundle=test.aab --output=test.apks --mode=universal

 

bundletool을 직접 다운받은 경우 아래와 같이 변환 :

java -jar "bundletool-all-1.1.0.jar" build-apks --bundle="test.aab" --output="test.apks" --mode=universal

 

apks 확장자를 zip으로 변경 후 압축을 풀면 apk파일을 얻을 수 있다. 

 

참고 :

developer.android.com/studio/command-line/bundletool

 

반응형
블로그 이미지

SKY STORY

,
반응형

맥북에 안드로이드 디바이스 usb 연결한다.

디바이스와 맥북은 같은 네트워크상에 연결되어 있어야 한다.

 

콘솔창을 열고 연결된 디바이스를 확인한다.

 

에뮬레이터는 종료하도록 하자

 

사용할 포트를 연다

 

폰에 연결된 와이파이 로컬 IP주소를 확인하고 연결한다.

 

연결 완료 후 usb케이블을 제거하고 연결된 디바이스를 확인한다. 

연결이 완료된 상태라면 이제 원격디버깅이 가능하다.

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
블로그 이미지

SKY STORY

,
반응형

스마트폰 BTC 채굴앱

https://get.cryptobrowser.site/34473645

 

Earn coins while browsing the web

Earn bitcoins while watching videos, chatting, or playing online. It has never been so easy to increase your income! Tell your friends about CryptoTab Browser, invite them to join, and earn more together. Grow your network—get more profit!

get.cryptobrowser.site

 

다음과 같은 에러 발생시 

Cannot convert string value 'JETPACK_COMPOSE' to an enum value of type 'com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag' (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRANSITIVE_R_CLASS)

 

build.gradle 파일내 4.0.0이상으로 되어있는 버전을 다음과 같이 3.6.1버전으로 낮추면 에러를 해결할 수 있다.

classpath 'com.android.tools.build:gradle:3.6.1'

 

 

스마트폰 BTC 채굴앱

https://get.cryptobrowser.site/34473645

 

Earn coins while browsing the web

Earn bitcoins while watching videos, chatting, or playing online. It has never been so easy to increase your income! Tell your friends about CryptoTab Browser, invite them to join, and earn more together. Grow your network—get more profit!

get.cryptobrowser.site

 

반응형
블로그 이미지

SKY STORY

,
반응형

jdk 설치후 나타나는 경고 메시지 이다.

 

다음과 같은 에러 발생시 IntelliJ 설정에서 다음과 같이 체크박스를 언체크해주도록 한다.

반응형
블로그 이미지

SKY STORY

,
반응형

웹에서 안드로이드 앱을 실행할 경우 다음과 같은 설정 후 사용 가능하다.

Android Manifest 설정

<activity
  android:name=".TestActivity">

  <!-- 이 부분이 다 들어가 있어야 동작 -->
  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="schemeName" android:host="hostName"/>
  </intent-filter>
</activity>

설명

  • android.intent.action.VIEW : 이 작업은 액티비티가 사용자에게 표시할 수 있는 어떤 정보를 가지고 있을 때 startActivity()가 있는 인텐트에서 사용합니다. 예를 들어 갤러리 앱에서 볼 사진이나 지도 앱에서 볼 주소 등이 이에 해당됩니다.
  • android.intent.category.DEFAULT : 암시적 인텐트를 수신하려면 인텐트 필터 안에 반드시 포함되어 있어야 합니다.
  • android.intent.category.BROWSABLE : 대상 액티비티가 스스로 웹 브라우저가 자신을 시작해도 되도록 허용하여 링크로 참조된 데이터를 표시하게 합니다. 예컨대 이미지나 이메일 메시지 등이 이에 해당합니다.
  • data : 이 부분에서 scheme이름과 host이름을 지정해주어야 실행시킬 수 있습니다.

포맷

<scheme>://<host>:<port>/<path>

Web에서 설정

<a href="schemeName://hostName"> 실행 하기 </a>

위와 같이 설정이 끝난 상태에서 Web에서 해당 링크를 누르게 되면 설치되어 있는 경우에 지정한 Activity가 실행이 됩니다.

 

2020/12/17 - [프로그래밍/Java] - Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

2020/12/17 - [OS/Mac OS X] - OpenSSL을 이용한 Key 정보 Text 변환

2020/12/17 - [프로그래밍/Java] - RSA 암복호화

2020/12/17 - [iOS/Tips] - URL query 파싱 및 json string 변환

2020/12/16 - [개발노트] - Code 128 Barcode의 Check Digit 계산방법

2020/12/15 - [iOS/Tips] - 디버깅 차단 처리 (Anti Debug)

2020/12/14 - [iOS/Tips] - bundle id 알아내기

2020/12/12 - [AI/Algorithm] - 2D 충돌처리

2020/12/11 - [iOS/Swift] - UIViewController 스위칭

2020/12/11 - [개발노트] - PlantUML 설치 (Mac OS X)

2020/12/11 - [개발노트] - 특수문자 발음

2020/12/10 - [iOS/Objective-C] - 웹뷰에서 javascript 함수 동기식 호출

2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (2/2)

2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (1/2)

2020/12/10 - [iOS/Tips] - Custom UserAgent 설정

반응형
블로그 이미지

SKY STORY

,