[코틀린] 고도용 안드로이드 플러그인 CameraX 기능파악을 위한 앱 실습 codelabs
처음에 ai활용해서 막 해봤는데 빌드해서 고도apk빌드해서 확인하니까 실행하다가 꺼져버린다 ㅠㅠ
가이드보니까
코드랑 다 잘되어있는데
뭘 어떻게 써야 고도엔진에 기능을 전달할지도 모르겠다.
일단 가이드대로 앱을 만들어서 휴대폰에서 사용해보고 toast?라는 텍스트 출력함수도 알고 있으니까
출력으로 테스트 해보려한다.
https://developer.android.com/codelabs/camerax-getting-started?hl=ko#3
가이드가 잘되어있음.
그냥 복붙만해도 될 듯..ㄷ
음 나 구형폰인데 안드로이드 9 ㅠㅠ
안드로이드 10부터하는거 추천하넹..
opencv를 활용해서 물체 감지 이동을 판단할건데 그걸로 게임만들어서 내가 사용할거임.
일단 해보장 ㄱㄱ
이걸로 하라고했는데
이게 아닌가?;;
추가해줌. 오류사라짐
MainActivity.kt 설정
MainActivity.kt의 코드를 다음 코드로 바꿉니다. 단, 패키지 이름은 그대로 둡니다. 여기에는 import 문, 인스턴스화할 변수, 구현할 함수, 상수가 포함됩니다.
카메라 권한을 확인하고, 카메라를 시작하고, 사진 및 캡처 버튼의 onClickListener()를 설정하고, cameraExecutor를 구현할 수 있도록 onCreate()가 이미 구현되어 있습니다. onCreate()가 구현되어 있어도 파일에서 메서드를 구현할 때까지는 카메라가 작동하지 않습니다.
이것도 타겟 버전이 안맞아서 수정해줌 ai가 도움된당.
agp = "8.2.2"
kotlin = "1.9.0"
coreKtx = "1.12.0"
junit = "4.13.2"
junitVersion = "1.1.5"
espressoCore = "3.5.1"
lifecycleRuntimeKtx = "2.6.2"
activityCompose = "1.8.2"
composeBom = "2023.08.00"
appcompat = "1.6.1"
안드로이드 스튜디오로 앱빌드는 처음해봄 성공뜸.
이게 build쪽에 apk파일로 있을 것같은데
설치해서확인해봄.
아 서명안했구나 안드로이드 스튜디오로 서명하는법을 알아야하넹;;
아 중단되넹
아 sdk가 최신버전기준으로 되어있는데 난 34타겟이니까
theme이란 것도 34로 바꿔주어야함 ㅠㅠ
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.CameraXApp" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Material3 테마 적용 -->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
</style>
</resources>
이걸로 value-theme.xml 파일 바꿔주고
implementation 'com.google.android.material:material:1.11.0'아 카메라함수를 작성안해서 저기까지만 실행되고 꺼지는 것 같다...
가이드 다음으로 진행
permisisions not granted by the user
34로 고쳐줌 ㅠㅠ
어쩐지... 저장소 권한은 안뜨더라..
카메라 실시간화면등장
안드로이드 스튜디오는 호환성 버전만 잘 맞추면 크게 무리없는 듯.
기능이랑 문법은 잘몰라서 좀 찾아봐야겠다.
toast출력으로 고도엔진에서 확인하려면 좀 걸릴 듯..
take photo구현해서 사진찍으니까 저장도되는데
다 0b라 읽을 수가 없다.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
읽기 권한 추가하니까 읽을 수 있음.
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
이건 안드로이드 13부터 쓰인단다.
출시목적이니까 추가꼭해야할 듯.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-feature android:name="android.hardware.camera.any" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="34" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.CameraXApp">
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
안드로이드 매니페스트 이렇게 작성함.
ImageAnalisys도 구현 후 테스트하니
가이드 말대로 로그캣에 계속 1초마다(1초는 아닌듯 더 빠름) 찍힌다.
그렇구만
내가 원하는 기능은 일단 이건데.
대충 어떤 방식인지 알것 같다. 코드 내용은 전부 잘 알지는 못하겠지만 ㅎㅎ; ㅠ
대충 흐름은 알 것 같다.
동영상 캡쳐 기능까지 구현.
라이프 사이클? 여기에 해당하는 변수값을 매개변수로 넣으면 작동을 하는데
이미지 저장은 고품질인지 느리게 저장된당.
일단 나는 이기능은 안쓰니까 패스...
이게 기기마다 지원하는게 다른 것 같은데 위 링크에서 확인 할 수 있다고 한다.
analyzer는 쓰면 성능문제가 있넹.
빼고 사용하고 사진도 찍어봤는데
사진캡쳐는 좀 느리다.
동영상캡쳐는 저장도 빠른데..
미리보기 화면은 그럼 어떻게 하지;;?
댓글
댓글 쓰기