본문 바로가기
728x90

개발74

[안드로이드] 기본 벨소리, 알람 등 추출 안드로이드 기본 벨소리를 알람에 또는 그 반대로 이용하고자 하려고 할 때 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.
[PHP] phpinfo() PHP 정보와 설정 출력하는 함수 개요 phpinfo()는 PHP 정보와 설정을 표로 정리해서 보여주는 함수입니다. PHP 파일 생성 다음의 코드를 가진 phpinfo.php 파일을 만듭니다.(파일 이름은 다른 것으로 해도 상관없습니다.) 1 웹브라우저로 접속 웹브라우저로 phpinfo.php에 접속합니다. 그러면 다음처럼 정보를 출력합니다. 2019. 11. 6.
검색엔진최적화(SEO) 마케팅 총정리 가이드 검색엔진최적화(Search Engine Optimization, SEO)에 대해 들어보셨나요? 검색엔진최적화를 한마디로 정의하라고 하면 어떤 사람은 검색엔진에서 사이트가 잘 보여지게 만드는 마케팅, 또 다른 사람은 돈 안 들이고 할 수 있는 마케팅이라고 하곤 합니다. 이번 포스팅에서는 검색엔진최적화란 무엇인지, 어떻게 해야 하는지, 왜 해야 하는지 등등 SEO에 대해 낱낱이 알아보도록 하겠습니다. 검색엔진최적화에 대해 하나도 모르는 분도 이 글을 통해 ‘검색엔진최적화는 이런 것이구나’ 하고 이해하실 수 있을 것입니다. 1. 검색엔진최적화란? 1.1. 검색엔진최적화 개념 이해하기 1.2. 검색엔진최적화 얼마나 중요할까? 1.3. 검색엔진최적화와 검색광고 비교하기 2. 검색엔진최적화(SEO) 방법 2.1. .. 2019. 11. 3.
검색엔진 최적화(SEO) 초보자 가이드 이 가이드는 어떤 사람을 대상으로 하나요? 온라인 콘텐츠를 소유 또는 관리하여 수익을 창출하거나 Google 검색을 통해 온라인 콘텐츠를 홍보하시나요? 그렇다면 이 가이드를 읽어보시기 바랍니다. 이 가이드는 성장 중인 비즈니스의 소유자, 사이트 수십 개를 관리하는 웹마스터, 웹 대행사의 SEO 전문가, Google 검색 메커니즘을 열정적으로 탐구하는 DIY SEO 전문가를 위해 작성되었습니다. Google에서 권장하는 SEO의 기본사항을 간단히 살펴보고 싶으시다면, 이 가이드를 읽어보세요. 이 가이드에서는 여러분의 사이트를 자동으로 Google 검색 순위 1위로 올려놓을 수 있는 비법을 알려드리지는 않습니다. 하지만 다음에 설명된 권장사항을 따르면 검색엔진이 더 쉽게 사이트의 콘텐츠를 크롤링하고 색인을 .. 2019. 11. 3.
[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.
[자체 or 외주개발] 카톡과 같은 메신저 어플을 개발하기 위한 방 자체개발? 혹은 외주개발? 카톡과 같은 메신저 어플을 개발하기 위한 방법: 카톡과 같은 메신저 어플을 개발하기 위해서 자체 개발 or 자체개발 어느 방법이 좋을까? 이를 위해 어떤 판단 기준이 필요한가 모바일 메신저에 대한 뜨거운 관심과 함께 어플 안에 채팅 기능을 도입하려는 트렌드가 최근 급부상하고 있다. 메신저 혹은 메시징 서비스를 기획함에 있어서 어떤 질문을 제일 먼저 해봐야 할까? 기업이 개발을 할때 흔히 경험하는 자체 or 외주개발 (Make or Buy) 의사결정 - 메신저 / 메시징 서비스 프로젝트에는 어떻게 적용될 수 있는가 요즘에는 모바일 메신저가 깔려 있지 않은 스마트 폰을 찾기 어려우며, 최근 출시되는 많은 수의 어플들이 메시지를 내재화 하는 기능을 도입해 이용자들 사이의 대화를 촉진.. 2019. 10. 25.
[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.
[Java] XPath Example – XPath Tutorial In this Java XPath tutorial, we will learn what is XPath library, what are XPath data types and learn to create XPath expression syntax to retrieve information from XML file or document. This information can be XML nodes or XML attributes or even comments as well.Table of Contents 1. What is XPath? 2. XPath Data Model 3. XPath Data Types 4. XPath Syntax 5. XPath Expressions 6. Recommended readin.. 2019. 9. 9.
728x90