본문 바로가기
728x90

개발/Adroid57

[안드로이드] 기본 벨소리, 알람 등 추출 안드로이드 기본 벨소리를 알람에 또는 그 반대로 이용하고자 하려고 할 때 1. ASTRO 같은 파일 관리자 프로그램을 설치한다. 2. 루트 폴더(최상위 폴더)로 이동 후 아래의 경로로 이동한다. 알람음은 /system/media/audio/alarms/ 알림음은 /system/media/audio/notifications/ 벨소리는 /system/media/audio/ringtones/ 3. 해당 폴더 안의 원하는 파일을 복사한다. 4. 루트 폴더(최상위 폴더)로 이동 후 아래의 경로로 이동한다. 아래의 경로가 없으면 직접 새로 만든다. 알람음은 /sdcard/system/media/audio/alarms/ 알림음은 /sdcard/system/media/audio/notifications/ 벨소리는 /s.. 2019. 12. 10.
[Android Studio] 라이브러리 만들기 Android 라이브러리는 구조적으로 Android 앱 모듈과 동일합니다. Android 라이브러리에는 소스 코드, 리소스 파일, Android manifest와 같이 앱을 빌드하는 데 필요한 모든 사항이 포함될 수 있습니다. 하지만 이 라이브러리는 기기에서 실행되는 APK로 컴파일되는 대신 Android 앱 모듈의 종속성으로 사용할 수 있는 Android 보관 파일(AAR)에 컴파일됩니다. JAR 파일과 달리 AAR 파일에는 Android 리소스 및 manifest 파일이 포함될 수 있습니다. 그래서 Java 클래스 및 메서드 외에 레이아웃 및 드로어블과 같은 공유 리소스를 번들로 구성할 수 있습니다. 라이브러리 모듈은 다음과 같은 상황에 유용합니다. 활동, 서비스, UI 레이아웃 등 일부 구성요소를 .. 2019. 11. 1.
[android] Proguard를 사용한 코드 난독화 - 자주 사용하는 라이브러리의 난독화 규칙, 규칙 분리 관리하기 프로가드 규칙, 용도와 라이브러리에 따라 분리해서 관리하세요! 프로가드 규칙, 어떻게 관리하시나요? 다음처럼 앱 프로젝트에 하나의 프로가드 규칙을 생성해 두고, 그 안에 한 번에 여러 라이브러리에 필요한 규칙을 한 번에 정의하셨나요? [proguard-rules.pro] # Don't note duplicate definition (Legacy Apche Http Client) -dontnote android.net.http.* -dontnote org.apache.http.** # Add when compile with JDK 1.7 -keepattributes EnclosingMethod # Firebase Authentication -keepattributes *Annotation* # Fireba.. 2019. 10. 29.
[android] 20분만에 채팅App만들기 -Firebase(4) 오늘은 채팅방화면에서 글을 써보겠습니다. 먼저 채팅방 화면의 레이아웃을 알아보겠습니다. 리스트형식은 Recyclerview를 사용하겠습니다. Recyclerview는 제포스팅 글에 잘나와있습니다. 참고하시면 되겠습니다. 이후 Chatmessage를 담을 class 를 만들어줍니다. private String message,uid; private ChatData(String message,String uid){ this.message=message; this.uid=uid; } 다음은 게터세터를 정의합니다. public String getMessage() { return message; } public void setMessage(String message) { this.message = message; .. 2019. 10. 29.
[android] 20분만에 채팅App만들기 -Firebase(3) 저번시간에 회원가입성공 까지 하였고 이제 회원가입이 성공하였으니 로그인과정을 알아보겠습니다. 저번시간에 로그인화면 XML을 만들어보았었습니다. 이제 그부분에서 작업을 시작하겠습니다. 먼저 각각 ID먼저 선언부터 하도록하겠습니다. -아래 코드는 MainActivity 에서 이루어지는 작업입니다. private Button login;private EditText edittext_id, edittext_pw;edittext_id = (EditText) findViewById(R.id.edittext_id); edittext_pw = (EditText) findViewById(R.id.edittext_password);login = (Button) findViewById(R.id.loginActivity_bu.. 2019. 10. 29.
[android] 20분만에 채팅App만들기 -Firebase(2) 이번글은 회원가입에 대해서 알아보겠습니다. 먼저 간단한 로그인 화면 XML 부터 만들어보겠습니다. 이후 로그인하는 Activity에서 회원가입 Activity 로 이동해보겠습니다. 먼저 MainActivity에서 ((Button)findViewById(R.id.loginActivity_button_signup)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(LoginActivity.this, SignupActivity.class)); } }); 회원가입으로 이동해보겠습니다. 이제 회원가입에대한 XML을 만들어 보겠습니다. 이런식으로 회원가입에 .. 2019. 10. 29.
[android] 20분만에 채팅App만들기 -Firebase(1) 요번 포스팅부터 Firebase 관련 글을 써보겠습니다. 먼저 firebase 에 대해서 알아보겠습니다. Firebase는 클라우드 서비스 제공자이며 동시에 백엔드의 기능을 가지고 있습니다. 원격 클라우드 서버를 제공하며 우리는 Firebase를 이용해 손쉽게 그 곳에 데이터를 저장하고 불러올 수 있습니다. 이 외에도 Firebase는 Android, IOS 그리고 Web 개발자들을 위해 여러 기술들을 만들어냈습니다. Firebase는 2011년 Andrew Lee 그리고 Tamplin에 의해 설립되었으며 2012년 실시간 클라우드 데이터베이스(Realtime cloud database)로 시작되었습니다. 실시간 클라우드 데이터베이스는 Firebase의 가장 핵심적인 무기인데, 그것이 무엇인지는 잠시 후.. 2019. 10. 29.
[android] firebase 를 이용한 채팅앱 안녕하세요. 오늘은 안드로이드 채팅앱을 만들어보려합니다. 말이 채팅앱이지 firebase 를 이용해서 만들면 정말 간단하게 구현할 수 있습니다. 구글 firebase는 정말 강력한 플랫폼인것 같습니다. 여러곳에서 사용되고 있는 FCM푸시 서비스도 그렇고 여러가지 강력한 서비스들을 무료로 사용할 수 있습니다. 이번에는 firebase 실시간 데이터베이스를 이용하여 앱을 만들어 보겠습니다. 우선은 firebase 프로젝트를 생성해야 합니다. 기존에 FCM 등에서 만들어둔 프로젝트에 추가하셔도 되구요. 이부분은 설명하지 않겠습니다. 1.추가된 프로젝트의 google-service.json 파일을 다운로드 받고 파일은 프로젝트/app 경로에 넣어주시면 됩니다. 다음은 라이브러리들을 추가해줍니다. 2.app 경로.. 2019. 10. 29.
[android] 20분만에 채팅App만들기 -Firebase(1) 요번 포스팅부터 Firebase 관련 글을 써보겠습니다. 먼저 firebase 에 대해서 알아보겠습니다. Firebase는 클라우드 서비스 제공자이며 동시에 백엔드의 기능을 가지고 있습니다. 원격 클라우드 서버를 제공하며 우리는 Firebase를 이용해 손쉽게 그 곳에 데이터를 저장하고 불러올 수 있습니다. 이 외에도 Firebase는 Android, IOS 그리고 Web 개발자들을 위해 여러 기술들을 만들어냈습니다. Firebase는 2011년 Andrew Lee 그리고 Tamplin에 의해 설립되었으며 2012년 실시간 클라우드 데이터베이스(Realtime cloud database)로 시작되었습니다. 실시간 클라우드 데이터베이스는 Firebase의 가장 핵심적인 무기인데, 그것이 무엇인지는 잠시 후.. 2019. 10. 26.
[android] PagerSlidingTabStrip For a working implementation of this project see the sample/ folder. Include the library as local library project or add the dependency in your build.gradle. dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' } Include the PagerSlidingTabStrip widget in your layout. This should usually be placed above the ViewPager it represents. In your onCreate method (or onCreateView for a fragme.. 2019. 10. 21.
[android] 문자열 리소스 <string> 안드로이드(Android) 문자열 리소스 안드로이드(Android) res(리소스) 관리 안드로이드에서는 여러 리소스들을 /res/ 밑에서 관리한다. 문자열 리소스는 기본적으로 /res/values 밑에 strings.xml에서 관리된다. 필요한 문자열을 strings.xml에 등록하고, layout과 Activity에서 리소스를 사용해보자. 1. res(리소스)에 String 문자열 등록하기 strings.xml HelloAndroid Settings Hello world! Hello~! Friends~! Hello~!Android~! Name : %1$s, Score : %2$d sample1 : Hello~! Friends~! 라는 String을 리소스로 등록했다. sample2 : Hello~! .. 2019. 10. 16.
[android] google AdMob에 가입하기 아직 AbMob에 가입하기 위해 사용하는 Google 계정과 연결된 애드센스 계정과 Google Ads 계정이 없으면 다음 단계를 완료하세요. https://apps.admob.com으로 이동합니다. 기존 Google 계정을 사용하여 가입하려면 Google 계정으로 가입을 클릭하고 새 계정을 만들려면 새 Google 계정 만들기를 클릭합니다. 화면의 프롬프트를 따릅니다. 계정 정보를 작성하여 새 애드센스 계정과 Google Ads 계정을 만듭니다. 국가 또는 지역: 국가 또는 지역을 선택합니다. 선택한 국가 또는 지역에 따라 지급 통화가 결정됩니다. 시간대: 시간대를 선택합니다. 보고 데이터의 정확성을 보장하려면 Google Ads 계정 및 애드센스 계정의 시간대를 동일하게 설정하는 것이 좋습니다. Go.. 2019. 10. 14.
[android] PROGUARD사용시 주의점 android.support.v4를 사용하고 있다면 proguard.cfg 파일에 아래 내용 추가. -dontwarn android.support.v4.** project.properties에 proguard를 적용한다는 옵션 표기. proguard.config=proguard.cfg ========================================================================== -verbose //로그 봄 -dontoptimize // 압축 하지 않음 그냥 하지말자.. -dontshrink //사용하지 않는 메소드를 유지하라 -dontwarn org.apache.** -dontwarn (Warnig이 나온 클래스).** // 빌드시 can’t find supercl.. 2019. 10. 8.
[android] Audio AlbumArt 가져오기. Audio AlbumArt의 Uri를 얻는다. 방법은 아래와 같다. audio data를 질의 하여 ALBUM_ID 컬럼의 데이터를 얻어와 albumart Uri에 albumId값을 더해 albumart thumbnail 데이터를 얻어온다. Source long albumId = cursor.getLong(cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.ALBUM_ID)); Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); Uri sAlbumArtUri = ContentUris.withAppendedId(sArtworkUri, albumId); Uri를 얻으면 Im.. 2019. 10. 7.
[android] pro guard parser error This solution helped me: First, in app/build.gradle change useProguard to 'true' Second, in proguard rules add line '-dontobfuscate' buildTypes { release { debuggable false minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' ... } debug { debuggable true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('pr.. 2019. 10. 4.
[android] 멀티덱스, 섣불리 적용하지 마세요! 프로가드로 메소드 카운트 줄이는 방법 안드로이드 서포트 라이브러리와 구글 플레이 서비스의 덩치는 날이 갈수록 커져가고 있습니다. 때문에, 다른 라이브러리를 더 추가하다 보면 메소드 참조 수가 증가하여 멀티덱스를 사용해야만 앱을 정상적으로 빌드할 수 있습니다. 멀티덱스란? 안드로이드 앱을 구성하는 코드는 컴파일되어 덱스(dex) 파일로 만들어집니다. 그런데, 덱스 포맷의 제한으로 인해 하나의 덱스 파일에는 최대 65536 개의 메소드 참조만 저장할 수 있습니다. 일반적으로 메소드 참조 수는 사용하는 라이브러리의 수와 앱을 구성하는 코드의 수에 비례하여 증가합니다. 따라서 큰 규모의 앱을 작성하다 보면 앞의 메소드 제한을 훌쩍 뛰어넘게 됩니다. 이 경우, 빌드 시 다음 중 하나의 에러 메시지가 표시됩니다. Conversion to Dalvik .. 2019. 10. 4.
[android] 안드로이드 프로가드 적용 방법과 에러 발생 시 해결 방법 android studio apply proguard 이번 포스팅에서는 안드로이드 스튜디오에서 프로가드 적용 방법에 대해 알아봅니다. 1. 기본적으로 안드로이드 스튜디오에서 프로젝트를 생성하면 Gradle Scripts -> proguard-rules.pro 라는 파일이 생성됩니다. 그리고 앱 레벨의 build.gradle에 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 이런 코드 또한 작성되어 있습니다. 코드를 보면 minifyEnabled false 죠? 말 그대로 활성화가 되어있지 않다는 뜻입니다. false -> true로 변경해주게되면 앱을 릴리즈할 때 프로가드가 .. 2019. 10. 4.
[android] 앱 데이터 폴더 경로 및 내부/외부 저장소 설명 Device에 App이 설치되면 App마다 사용할 수 있는 저장공간이 있습니다. 각 앱이 사용할 수 있는 directory마다 차이점이 있고, 자주 헷갈리는 부분이라서 한번 정리해보았습니다. 이 글은 안드로이드 Q가 공개되기 전에 쓰여졌습니다. 안드로이드 Q에서 외부 저장소의 새로운 정책인 Scoped Storage가 소개되었습니다. 그렇기 때문에 이 글의 내용은 안드로이드 P 이하의 디바이스에만 해당됩니다. Scoped storage에 대한 자세한 내용은 안드로이드 Q의 새로운 저장소 정책, Scoped Storage 알아보기를 참고해주세요. Code(Apk) 위치 어떤 App이 설치되면 device 내부의 특정 dir에 apk, libs, oat 파일 등이 저장됩니다. Oreo부터 폴더명은 packa.. 2019. 10. 1.
[android] ImageLoader must be init with configuration before using import com.nostra13.universalimageloader.core.ImageLoader; 이미지 로더 초기화 ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(MyActivity.getContext())); 2019. 10. 1.
[andorid] Sliding Tabs with PagerSlidingTabStrip rior to Android "L" preview, the easiest way to setup tabs with Fragments was to use ActionBar Tabs as described in ActionBar Tabs with Fragments guide. However, all methods related to navigation modes in the ActionBar class (such as setNavigationMode(), addTab(), selectTab(), etc.) are now deprecated. As a result, tabs are now best implemented by leveraging the ViewPager with a custom "tab indi.. 2019. 9. 27.
[android] 당겨서 새로고침 간단하게 구현하기 출처 : http://www.androidhive.info/2015/05/android-swipe-down-to-refresh-listview-tutorial/ 안드로이드에서 “당겨서 새로고침(Pull to Refresh)" UI를 간단히 구현해보자. 당겨서 새로고침 기능을 구현해주는 SwipeRefreshLayout은 Android support library v4에 포함되어 있다. 먼저 gradle에 support v4 라이브러리를 추가한다. // build.gradledependencies { ... compile 'com.android.support:support-v4:23.4.0' } 그리고 새로고침을 적용할 뷰를 SwipeRefreshLayout으로 감싼다. 대부분 ListView 또는 Rec.. 2019. 9. 13.
[android] 다국어 지원 안드로이드에서 다국어를 지원할때 아래와 같이 string.xml 파일을 만든다 res/values-ko/string.xml // 한국어 등록 res/values-en/string.xml // 영어 등록 2019. 9. 12.
[android] 레이아웃 xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FF00FF" android:text="text" android:orientation="horizontal" android:layout_gravity="center" android:layout_weight="1" an.. 2019. 9. 12.
[android studio] 코드가 입력될 때 자동으로 import Andorid Studio 설정 File->Settings->Editor->Auto Import : Optimize imports on the fly 체크 : Add unambiguous imports on the fly 체크 2019. 9. 12.
[android] 상태바 투명 처리 안드로이드 상태바를 투명하게 만드는 방법입니다. 대충 안드로이드 상태바는 다음과 같은 형태로 표현할 수 있습니다. 1) 아무런 설정을 안 해줬을 때의 기본적인 상태바 2) 색상을 입힌 상태바 3) 투명 처리를 한 상태바 과거에는 완전히 투명한 상태바도 표현할 수 있었는데, 지금은 반투명 상태로 표현되고 있습니다. 일단, 반투명 상태의 상태바는 다음과 같은 테마를 적용하여 구현할 수 있습니다. styles.xml 때에 따라서 반투명 상태보다는 색상을 입힌 상태바가 더 좋을 때가 있습니다. 상태바의 색상을 primaryColor와 똑같이 지정하면 투명 상태처럼 보이기도 합니다. 그럴 때는 와 같이 지정해주면 됩니다. Activity에서 StatusBar아래로 버튼등이 나와야 한다면 해당하는 layout에 하.. 2019. 9. 10.
[android] 앱 아키텍처 가이드 이 가이드에는 강력하고 성능이 뛰어난 앱을 빌드하기 위한 권장사항 및 권장 아키텍처가 포함되어 있습니다. 이 페이지는 Android 프레임워크 기본을 잘 아는 사용자를 대상으로 합니다. Android 앱을 처음 개발하는 경우 개발자 가이드를 확인하여 시작하고 이 가이드에서 언급된 개념을 자세히 알아보세요. 모바일 앱 사용자 환경 데스크톱 앱에는 대부분 데스크톱 또는 프로그램 런처로부터의 단일 진입점이 있으며 하나의 모놀리식 프로세스로 실행됩니다. 반면에 Android 앱의 구조는 훨씬 복잡합니다. 일반적인 Android 앱은 activity, fragment, 서비스, 콘텐츠 제공업체, broadcast receiver를 비롯하여 여러 앱 구성요소를 포함합니다. 개발자는 앱 매니페스트에서 이러한 앱 구성.. 2019. 9. 1.
[android] 새로운 종속성 구성 사용 radle 3.4에서는 새로운 Java 라이브러리 플러그인 구성을 도입했습니다. 이 구성에서는 (모듈 간 종속성을 위해) 컴파일 및 런타임 클래스 경로에 대한 게시를 제어할 수 있습니다. Android 플러그인 3.0.0은 이와 같은 새로운 종속성 구성으로 이전하고 있습니다. 프로젝트를 마이그레이션하려면, 지원 중단된 구성 대신 새로운 구성을 사용하도록 종속성을 업데이트하기만 하면 됩니다(아래 표에 요약). 새 구성지원 중단된 구성동작 implementation compile 컴파일 타임에는 모듈에 종속성을 사용할 수 있으며, 런타임에만 모듈 소비자에게 종속성을 사용할 수 있습니다. 대규모의 다중 프로젝트 빌드에서 api/compile 대신 implementation을 사용하면 빌드 시스템이 재컴파일해야.. 2019. 8. 31.
[android] build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.package.name" minSdkVersion 15 targetSdkVersion 28 versionCode 3 versionName "1.2" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pr.. 2019. 8. 30.
[android] 안드로이드 오픈 소스 모음 http://pluu.github.io/blog/android/oepnsource/2015/05/11/android-opensource/ Pluu Dev - [번역] 요즘 활용하는 Android 오픈소스 라이브러리 모음 [번역] 요즘 활용하는 Android 오픈소스 라이브러리 모음 May 11, 2015. | By: pluulove 이 포스팅은 イマドキなイカした Android のオープンソースライブラリ集 을 기본으로 번역하여 작성했습니다 제 일본어 실력으로 인하여 오역이나 오타가 발생할수 있습니다. 지금부터 Android를 한다면 체크하자, 엄선한 오픈소스 라이브러리 모음. support-v4나 support-v7-appcompat 등은 공식적인 것이기 때문에 배제. 개발 환경 Android SDK An... 2019. 8. 30.
안드로이드 오픈소스 사이트 모음 #첫번째 http://www.java2s.com/Open-Source/Android_Free_Code/ . #두번째 https://android-arsenal.com/free #UI https://github.com/wasabeef/awesome-android-ui . #CORE https://github.com/wasabeef/awesome-android-libraries #[세미나 동영상 ] 1시간 내에 게임만들기 (소스추가) id: 바야바바야바 http://www.androidpub.com/2114852 . #안드로이드 개발 스킬을 향상시키는 오픈소스 앱 20가지 꿈꾸는 개발자의 로그 님 홈페이지 바로가기 #류종택의 프로그래밍 강의실 블로그 바로가기 2019. 8. 30.
728x90