기본 콘텐츠로 건너뛰기

7월, 2023의 게시물 표시

안드로이드앱 "매직미러"를 이용한 자세 교정(골프)

안드로이드앱 "매직미러"를 이용한 교정 영상입니다.

2 files found with path 'lib/x86_64/libc++_shared.so' from inputs: 오류 해결 방법

안드로이드스튜디오로 앱을 개발하는 과정에서 플러그인, 외부 라이브러리를 추가하다 보면 "2 files found with path 'lib/ x86_64 /libc++_shared.so' from inputs: "과 같은 오류를 만날 수 있다. 'lib/x86_64/libc++_shared.so' 파일이 2개의 라이브러리에서 참조되어 발생하는 문제로 컴파일 환경에 따라 플랫폼 부분은 변경되면 나타날 수 있다 app수준의 build.gradle 파일에 다음과 같이 처리하면 관련 문제를 깔끔하게 처리 가능하다. android { ... packagingOptions { pickFirst 'lib/ x86 /libc++_shared.so' pickFirst 'lib/ x86_64 /libc++_shared.so' pickFirst 'lib/ arm64-v8a /libc++_shared.so' pickFirst 'lib/armeabi-v7a/libc++_shared.so' } ... } * 실제 내 앱소스내 코드임 * 위와 같이 컴파일 환경에서 제공하는 플랫폼별 참조를 전부 한번에 처리하는게 관련 오류를 원천 차단할 수 있는 방법이다.

안드로이브 뷰의 백그라운드 설정을 위한 2개 메서드 이용 방법

setBackgroundResource()와 setBackground()를 이용해서 Android 애플리케이션에서 View의 백그라운드를 설정하는 두 가지 방법입니다. 1. setBackgroundResource()    - 리소스 ID를 통해 백그라운드를 설정합니다.    - 파라미터로 리소스 ID를 받으며, 주로 R.drawable에서 제공하는 이미지나 그림 리소스를 사용합니다.      예를 들어, setBackgroundResource(R.drawable.background_image)와 같이 사용합니다.    - 이 메서드는 내부적으로 리소스를 로드하고, 해당 리소스를 백그라운드로 설정합니다. 2. setBackground()     - Drawable 객체를 통해 백그라운드를 설정합니다.     - 파라미터로 Drawable 객체를 받으며, ColorDrawable, BitmapDrawable, GradientDrawable 등 다양한 종류의 Drawable을 사용할 수 있습니다.       ( 예 : setBackground(new ColorDrawable(Color.WHITE))와 같이 사용합니다.     - 이 메서드는 주어진 Drawable 객체를 직접 백그라운드로 설정합니다. 위 두가지 메서드의, 주요한 차이점은 setBackgroundResource()는 리소스 ID를 통해 백그라운드를 설정하고, setBackground()는 Drawable 객체를 통해 백그라운드를 설정한다는 것입니다.

안드로이드 앱 버전 관리

AndroidManifest.xml 파일내 <manifest> 요소 안에서   <!-- 앱의 내부적인 버전 코드 나타냄. 정수값으로 설정되어야 하며, 각 버전은 고유한 값을 가져야 하며, 버전 코드는 앱의 업데이트나 배포를 관리하는 데 사용됨. -->  - android:versionCode: 2  <!-- 앱의 표시 버전 이름을 나타내며, 문자열로 설정되며, 주로 사용자에게 표시되는 앱 버전을 나타내는 용도로 사용됨. -->  - android:versionName: 1.2 ** 위 경우 구글 콘솔에서는 "2 (1.2)" 표기됨 ** 버전 코드는 릴리즈 순차 번호 관리하는게 편함 ** 버전 이름은 메이저 업데이트는 앞자리(1), 마이너 업데이트는 뒷자리(.2) 형식으로 구성하는게 일반적임    1.1.1.*등 세부적인 관리 체계에 따라 단계는 더 구분해도 됨

안드로이드 액티비티의 시스템 UI, 뷰 영역 제어

ActivityMainBinding    activityMainBinding = ActivityMainBinding.inflate ( getLayoutInflater ( ) ); activityMainBinding.getRoot ( ).setSystemUiVisibility (    //안전한 시스템 UI 레이아웃을 유지하도록 지정    //뷰가 시스템 UI의 변경으로 인해 크기나 위치가 변해도 안정된 레이아웃을 유지할 수 있다.    View.SYSTEM_UI_FLAG_LAYOUT_STABLE |           //뷰가 내비게이션 바가 표시되는 영역까지 확장    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION      //뷰가 상태바가 표시되는 영역까지 확장    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN      //내비게이션 바를 숨겨, 사용자의 터치나 제스처로 내비게이션 바가 나타나지 않도록 한다.    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION     // 상태바를 숨겨, 사용자의 터치나 제스처로 상태바가 나타나지 않도록 한다.    | View.SYSTEM_UI_FLAG_FULLSCREEN      //사용자가 액티비티의 화면 어느 곳이든 터치하면 시스템 UI가 일시적으로 표시되지만, 일정 시간이 지나면 다시 숨겨진다.    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY ); setContentView ( activityMainBinding.getRoot ( ) ); /* 결과적으로 위 ...

Visual Studio Xamarin 프로젝트에서 Google Play Services 광고 SDK를 사용하는 방법

1. NuGet 패키지 설치 (패키지 관리자 콘솔 이용)      Install-Package Xamarin.GooglePlayServices.Ads 2.  Google Play Services 추가     - 프로젝트의 Android 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "Google Play 서비스 추가" 선택     - "광고" 카테고리에서 "광고"를 선택하고 확인 버튼 클릭   3. Android 매니페스트 업데이트     - Android 프로젝트의 Properties 폴더에서 AndroidManifest.xml 파일 선택     - manifest 요소에 다음 사용 권한 추가       <uses-permission android:name="android.permission.INTERNET" />     - application 요소 내에 다음 <meta-data> 요소를 추가       <meta-data          android:name="com.google.android.gms.ads.APPLICATION_ID"          android:value="현재 앱의 AdMob ID" /> 4. 레이아웃 파일에 광고 뷰 추가     - 광고를 추가할 레이아웃 파일 (예: activity_main.axml)을 오픈     - AdView를 추가하기 위해 원하는 위치에 <com.google.android.gms.ads.AdView> 요소 추가  <com.google.android.gms.ads.AdView     android:id="@+id/adView" ...

ConstraintLayout을 뷰의 오른쪽 사이드 중간에 배치해야 할때

안드로이드 스튜디오에서 자바기반의 앱을 만드는 과정에서 ConstraintLayout을 뷰의 오른쪽 사이드 중간에 배치해야할 상황이 생겼다. 아래 4개 속성으로 부모뷰의 오른쪽 사이드 중간에 배치문제 해결. //오른쪽에 배치될 수 있도록 설정 app:layout_constraintRight_toRightOf="parent" //수직으로 중앙에 위치시키도록 설정 app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" // 뷰를 수직으로 중앙에 위치시키기 위한 비율 값 설정. 0.5는 화면의 중앙에 위치하는 값 app:layout_constraintVertical_bias="0.5"

화낙(FANUC) CNC 데이터 수집 프로그램

화낙 CNC에서 200개가 넘는 상태값을 뽑아오고 프로그램을 백업하거나 복구하는 프로그램입니다. 단독형, 서버형, MES(POP) with CNC 형태로 구성가능합니다 CNC 운영정보와 함께 전력량계를 통한 전압/전류/주파수 정보를 파악하여 추가적인 분석에 활용 가능합니다. ​ 수집데이터 샘플입니다. ======Statusinformation====== state run(0.reset 1.stop 2.hold 3.start) = 3 m,s,t,b status 0.other 1.Fin = 1 axis motion(0.? 1.Motion 3.Dwell = 0 state automatic mode 0: ****(Noselection)1 : MDI 2 : TAPE(Series 15),DNC(Series15i) 3 : MEMory4 : EDIT 5 : TeacHIN = 1 T/Mmode(0.T 1.M) = 0 max emergency(0.Not 1.Emergency 2.Reset) = 0 Alarm(0.other 1.alarm 2. Batterylow 3. FAN 4.PS warning 5.FSSB waring 6.Leakage waring 7.Encoder waring 8.PMC alarm= 0 ​ =====Actualfeedrate====== name(F.feedrate S.Spindlespeed: F feed rate data: 0 feed rate decimal point: 0 feed rate unit(0.mm/min 1.inch/min 2.rpm 3.mm/rev 4.inch/rev): 0 feed rate display flag: 0 select position: 0 ​ ====== Actualspindlespeed ====== name(F.feedrate S.Spindlespeed: S spindle speed data: 3467 spindle speed decimal po...