본문 바로가기
반응형

프로그래밍/안드로이드65

맥북 안드로이드 스튜디오, xcode 설치하는 법 *안드로이드 스튜디오 설치 - 아래 url에서 안드로이드 설치파일을 다운받습니다. https://developer.android.com/studio Download Android Studio & App Tools - Android Developers Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today. developer.android.com -내 맥북이 어떤 chip을 사용하는지 알려면 좌측상단 '이 mac에 관하여'를 클릭하면 됩니다. -설치파일을 다운받은 후 아래 좌측아이콘을 드래그해서 우측으로 놓.. 2023. 3. 8.
#11.안드로이드 ImageView, Checkbox ImageView - 이미지를 노출할때 사용하는 뷰이다. Checkbox -TextView의 서브 클래스라서 TextView에 설정하는 속성값 사용가능하다. package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.CheckBox; import android.widget.CompoundButton; public class MainActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCrea.. 2023. 1. 23.
#10.안드로이드 TextView, EditText, Button TextView - 문자열을 출력하는 뷰이다. ●text : 문자열을 지정하는 속성이다. ●textStyle : 문자열에 효과를 주는 속성이다.normal, bold, italic 값을 지정할 수 있다. ●textColor : 문자열에 색상을 지정할 수 있다. ●textSize : 문자열 크기를 설정할 수 있다. ●autoLink : url주소, 이메일, 전화번호 등과 같은 문자열에 지정한 형태로 링크효과를 준다.ex)web, email,phone.. ●maxLines : 특정줄만큼 출력한다. EditText -사용자에게 입려값을 받을때 사용하는 뷰이다. ●inputType : 입력타입을 설정한다. ex)phone, number, textEmailAddress,textPassword Button -버튼을.. 2023. 1. 23.
#9.안드로이드 뷰 속성 안드로이드 뷰 속성 안드로이드 뷰 속성 html로 비교하면 뷰 태그는 html태그, 뷰 속성은 html태그의 속성과 비슷하다고 보면 됩니다. id를 지정할 수도 있고, 가로세로 길이 지정, background, textColor, padding, margin 등 다양한 속성들을 지정할 수 있습니다. 레이아웃 xml영역을 html, 액티비티 자바를 자바스크립트 영역이라고 생각하면 됩니다. 안드로이드도 결국 클라이언트 프로그램이니까요. *layout_width, layout_height 뷰의 가로세로 길이를 설정합니다. 이 2가지는 반드시 있어야 하는 값입니다. 이 값이 있어야 가로세로 길이를 결정할 수 있기 때문입니다. 속성값은 match_parent, wrap_content, 00px 3가지로 지정할 수.. 2023. 1. 15.
#8.안드로이드 각 액티비티 독립적으로 테스트하는 방법 안드로이드 각 액티비티 독립적으로 테스트하는 방법 테스트시 각 액티비티 독립적으로 테스트 하기 1.생성할 패키지 우클릭->NEW->Activity->Empty Activity 선택 2.액티비티 생성시 'Launcher Activity'체크후 finish 클릭 3.생성한 액티비티 우클릭->Run '액티비티명' 클릭하면 각 액티비티를 독립적으로 실행시켜 볼 수 있습니다. 2023.01.15 - [프로그래밍/안드로이드] - #9.안드로이드 뷰 속성 #9.안드로이드 뷰 속성 안드로이드 뷰 속성 안드로이드 뷰 속성 html로 비교하면 뷰 태그는 html태그, 뷰 속성은 html태그의 속성과 비슷하다고 보면 됩니다. id를 지정할 수도 있고, 가로세로 길이 지정, background, textColor, p hyu.. 2023. 1. 15.
#7.안드로이드 액티비티, 뷰 안드로이드 액배티비, 뷰 액티비티와 뷰 액티비티는 앱의 실행단위인 컴포넌트이고 버튼, 문자, 이미지를 노출시키는 클래스를 뷰 클래스라고 합니다. 액티비티 내에 뷰 클래스를 구성하여 화면을 출력합니다 액티비티에 뷰를 출력하는 함수가 setContentView()함수입니다. 액티비티가 도화지이고 뷰 클래스가 붓이라고 생각하면 됩니다. UI작성 방법 - 자바 vs 레이아웃 XML 안드로이드 UI를 작성하는 방법은 2가지가 있습니다. 자바코드로 만드는 방법과 레이아웃XML로 만드는 방법이 있습니다. 자바와 레이아웃 XML중 어떤 방법을 선택할지는 개발자 선택사항이지만 자바로 구성하면 코드가 길어지고 가독성이 떨어집니다. 그래서 XML로 하는게 효율적이라 추천드립니다. *자바로 구성하는 방법 아래처럼 버튼 클래스.. 2023. 1. 15.
#6.안드로이드 스튜디오 파일구조 분석, 컴포넌트 개념 안드로이드 스튜디오 파일구조 분석, 컴포넌트 개념 안드로이드 컴포넌트 개념 안드로이드 앱은 컴포넌트 기반으로 되어 있습니다. 컴포넌트는 독립적인 수행단위로 수행됩니다. 안드로이드에서 클래스는 컴포넌트와 일반 클래스로 나뉩니다. 일반 클래스는 개발자가 직접 관리하는 클래스이고 컴포넌트는 안드로이드 시스템이 생성하여 관리하는 클래스입니다. 안드로이드 컴포넌트는 4자기가 있습니다. -액티비티 : UI를 구성하는 컴포넌트 -서비스 : 백그라운드에서 수행되는 컴포넌트 -컨텐츠 프로바이더 : 앱간 데이터를 공유하기 위한 컴포넌트(ex, 주소록 가져오기) -브로드캐스트 리시버 : 이벤트로 수행되는 컴포넌트(ex, 푸시) 안드로이드 스튜디오 파일구조 분석 -AndroidManifest.xml : 앱의 메인 환경설정 파.. 2023. 1. 12.
#5. 안드로이드 구글 스토어에 앱 배포하기 안드로이드 구글 play스토어에 앱 배포하기 앱 배포 시 필요한 파일 -ABB파일 -앱아이콘 -앱 프로모션시 사용할 이미지 -휴대폰 스크린샷 앱 배포 시 서명키 앱 서명키를 관리하는 방법은 2가지가 있습니다. 개발자가 직접 생성하여 관리하는 방법이 있고, 구글 play스토어에서 관리하도록 하는 방법이 있습니다. 보통 구글play스토어에서 관리하는 방법을 많이 사용합니다. 개발자가 직접 관리하는 방식은 서명키를 분실할 위험이 있습니다. 서명키를 분실하면 더 이상 앱을 업데이트할 수가 없습니다. 기존 앱을 버리고 새로 앱을 배포해야 합니다. 이러한 문제점을 해결하기 위해 play스토어 앱서명이 추가되었습니다. play스토어 앱서명 방식에는 2가지 키가 있습니다. 개발자가 play스토어에 업로드 시 필요한 업.. 2023. 1. 12.
#4.안드로이드 앱배포 AAB(Android App Bundle) 안드로이드 앱 배포 AAB 안드로이드 앱배포할때 APK로 배포하는 방법과 AAB(Android App Bundle)로 배포하는 방법 2가지가 있습니다. 보통 AAB로 배포하는 것을 권장한다고 합니다! APK배포방식은 파일 크기가 크다는 단점이 있습니다. AAB는 이를 해결하기 위해 구글에서 2018년에 새로 만든 배포방식입니다. APK는 모든 리소스를 포함하지만, AAB는 사용자 단말에 필요한 리소스만 동적으로 제공하기 때문에 배포 파일 크기가 작습니다. 앱 빌드하기 먼저 build.gradle에 들어가서 applicationId 값을 변경해줍니다. applicationId 값은 play스토어에서 유일한 값이어야 합니다. 상단 Build>Generate Signed Bundle을 클릭합니다. AAB방식과.. 2023. 1. 11.
#3.안드로이드 스튜디오 스마트폰 연결하기(개발자모드 설정) 안드로이드 스튜디오 스마트폰 연결하기 안드로이드 스튜디오에서 개발을 하고 개발한 내용을 AVD에서 확인을 해도 되지만 AVD는 간단하게 확인하는 용도이고 실제 스마트폰에 구동시켜서 테스트를 해봐야 합니다. 안드로이드 스튜디오와 스마트폰을 연결하려면 PC에 드라이버를 설치해야 합니다. 드라이버는 구글에서 '해당 제조사 드라이버'라고 검색하면 나옵니다. 저는 갤럭시로 테스트를 할 예정이라 삼성 휴대폰 드라이버를 다운로드하여 보겠습니다. 아래 URL에 접속하여 드라이버를 다운받아 설치합니다. https://developer.android.com/studio/run/oem-usb?hl=ko https://developer.samsung.com/android-usb-driver PC에 드라이버를 설치하고 나서 스.. 2023. 1. 11.
#2.안드로이드 자바(java) vs 코틀린(kotlin) 안드로이드 자바(java) vs 코틀린(kotlin) 안드로이드 스튜디오에서 프로젝트를 생성할 때 자바 또는 코틀린 언어를 선택해야 합니다. 둘 중 어떤 언어가 좋을까요? 안드로이드는 원래 자바를 공식언어로 지원을 하고 있었습니다. 그러다가 오라클에서 자바를 인수하고 자바를 사용하는 회사들에게 돈을 요구하고 소송을 하기 시작했는데요. 그래서 구글에서도 안드로이드 공식언어로 코틀린을 채택하고 2019년부터는 제1 공식언어로 밀어주기 시작하고 있습니다. 구글, 메타, 카카오 등 많은 IT기업들도 자바로 만든 앱을 코틀린으로 전환하고 있습니다. 둘 중 어떤 언어를 선택할지는 개인의 상황에 따라 다르겠지만 저는 자바로 먼저 해보시는 걸 추천드립니다. 물론 비전공자가 취미로 개발 시작해서 앱을 만들어 보고 싶은 .. 2023. 1. 7.
#1.안드로이드 개발환경세팅, helloworld 출력 안드로이드 개발환경 세팅 안드로이드 개발이 자바기반이라서 예전에는 자바SDK를 설치해야 했지만, 지금은 안드로이드 스튜디오만 설치하면 됩니다!! 자바SDK가 안드로이드 스튜디오에 포함되어 있다고 보면 되요. *안드로이드 개발환경 세팅 안드로이드 개발자 사이트에서 안드로이드 스튜디오 설치파일을 받아서 설치합니다! -안드로이드 스튜디오 설치파일 다운로드 경로 https://developer.android.com/studio?hl=ko 설치파일은 받은 다운 설치파일을 실행합니다. 특별히 설정할 것은 없고 그냥 쭉쭉 다음,다음 눌러서 진행하면 됩니다! *hello world 출력해보기 안드로이드 스튜디오를 실행해서 New Project를 만듭니다. 테스트로 hello world만 출력해볼거라 일단 액티비티는 아.. 2023. 1. 7.
#0.안드로이드 공부 다시시작 안드로이드 공부 다시 시작합니다!! 10년전에 학생때 공부했었는데, 10년만에 다시 공부하게 되었네요ㅎㅎ 이번에는 실제 앱을 배포하고 운영까지 해볼생각입니다. 열심히 해야지!!!! #1.안드로이드 개발환경세팅, helloworld 출력 #1.안드로이드 개발환경세팅, helloworld 출력 안드로이드 개발환경 세팅 안드로이드 개발이 자바기반이라서 예전에는 자바SDK를 설치해야 했지만, 지금은 안드로이드 스튜디오만 설치하면 됩니다!! 자바SDK가 안드로이드 스튜디오에 포함되 hyunssssss.tistory.com #2.안드로이드 자바(java) vs 코틀린(kotlin) #2.안드로이드 자바(java) vs 코틀린(kotlin) 안드로이드 자바(java) vs 코틀린(kotlin) 안드로이드 스튜디오에서.. 2023. 1. 2.
안드로이드 GCM ●GCM(Google Cloud Messaging)- 구글에서 제공하는 푸시 메시지 서비스이다. ●gcm 서비스 신청 - 구글 콘솔 사이트에 접속한 후 프로젝트를 생성한다.https://console.developers.google.com/project - API 및 인증에서 API를 클릭 한 후 Clou Messaging for Android에 들어가서 사용설정을 On으로 한다. - 사용자 인증정보에 들어가서 '공개API 엑세스'에서 새 키(서버키)를 만든다. - 서버의 IP를 입력한다. 아무것도 입력하지 않으면 모든IP허용이 된다. ● 아래 사이트에서 예제 소스를 다운받아 적용하기https://github.com/google/gcm - https://github.com/google/gcm에서 다운받은.. 2015. 5. 10.
안드로이드 SharedPreferences ●SharedPreferences- 데이터를 간단하게 저장할 수 있는 안드로이드에서 제공하는 클래스이다. ●예제- MainActivity.javapackage com.example.example; import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast; public c.. 2015. 5. 10.
안드로이드 자바 소켓서버 통신 ●소켓- 일상 용어에서는 전구를 끼울 수 있는 도구를 말한다. 자바언어에서는 네트워크를 제어하는 클래스를 의미한다.자바에서는 개발자가 네트워크 전문지식이 없어도 프로그래밍적으로 제어가 가능하도록 추상화시켜 제공해준다. ●예제 서버- ChatServer.javapackage chat; import java.io.IOException;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.util.Vector; public class ChatServer {//서버소켓 - 클라이언트의 접속을 받아들이는 클래스int port=7777;ServerSocket server;Vector connectList;.. 2015. 5. 10.
안드로이드 어싱크태스크(AsyncTask),로딩중 표시(ProgressDialog), 웹서버 연결 통신(HttpURLConnection) ●어싱크태스트(Async Task) - 네트워크 연결이므로, 연결시에 지연이 발생할 수 있다. 따라서 메인쓰레드(UI쓰레드)로 네트워크 접속을 시도하면 앱은 접속이 성공되고 응답을 받을때까지 동작을 못하게 된다. 따라서 안드로이드 최근버전부터는 메인쓰레드가 네트워크 접속을 시도하는것 자체를 금지한다. - 웹서버로부터 데이터를 가져와서 ListView 등에 출력하려면 동생쓰레드에서 가져온 데이터를 UI에 반영하는 작업이 필요한데, 안드로이드에서는 개발자가 정의한 쓰레드는 UI를 제어할 수 없도록 금지시켜놓았다. 그래서 Handler를 사용해야 하는데 이 작업은 번거롭다.그래서 AsyncTask라는 백그라운드 작업용 클래스를 지원하게 되었다. - AsyncTask = Thread + Handler ●로딩중 .. 2015. 5. 1.
안드로이드 JSONObject, JSONArray ●안드로이드 JSON - 안드로이드에서는 별도로 라이브러리를 추가할 필요없이 JSONObject, JSONArray 클래스를 사용하면 된다. ●예제- MainActivity.javapackage com.example.exam; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject; import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast; public class MainActivity extends Activity { @Overr.. 2015. 4. 26.
안드로이드 ViewPager, SQLite 예제 소스 ●ViewPager와 SQLite를 이용한 예제 - MainActivity.javapackage com.example.example1; import java.util.ArrayList; import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.support.v7.app.ActionBarActivity; public class MainActivity extends Action.. 2015. 4. 25.
안드로이드 오픈소스 ViewPagerIndicator ●뷰페이저인디케이터(ViewPagerIndicator)- 뷰페이저 화면이 이동할대 탭으로 해당 페이지가 어디에 위치해 있는지 알려준다.예)카카오톡 상단 탭 효과 - 아래 페이지에서 라이브러리를 다운 받은후 이클립스에 import해준다.http://viewpagerindicator.com/ - library프로젝트 우클릭후 properties에 들어가서 좌측android탭에서 is Library에 체크해준다. ●뷰페이저인디케이터 sample앱 추가- 먼저 다운받은 라이브러리 압축을 푼후 library폴더를 이클립스에 import해준다. (이 라이브러리를 사용할 프로젝트와 같은 workspace에 추가해야한다.) - library프로젝트 우클릭후 properties에 들어가서 좌측android탭에서 is L.. 2015. 4. 15.
안드로이드 SQLite ●sqlite- 안드로이드 로컬에서 사용하는 database이다. - 실제 스마트폰 단말기 내의 data/data/database경로에 파일이 만들어지게된다.에뮬레이터를 실행하고 DDMS에 들어가면 파일 구조를 볼수 있다.(실제 핸드폰으로 연결하면 파일구조를 다 보지 못하도록 막혀있다.) - 안드로이드 스마트폰은 보안상 접근을 허용하지 않는다. 따라서 개발자가 만일 sqlite 파일등을 스마트폰에 넣으려 할때, gui모드로 지원되는 DDMS는 사용할 수 없다.DDMS는 에뮬레이터에서만 의미가 있다. 안드로이드의 sqlite 관련 패키지에는 개발자가 데이터베이스 관리할 수 있는 여러 객체들을 지원해주므로, 실제 개발시엔 GUI모드로 하지말고 프로그래밍으로 처리한다. ●예제 - DatabaseMain.jav.. 2015. 4. 8.
안드로이드 뷰페이저(ViewPager) ●뷰페이저(ViewPager)- 화면을 좌우로 드래그해서 화면을 전환하는 기법이다. - import android.support.v4.app.~~ 를 선언해야한다. ●예제- 버튼을 클릭하거나 좌우로 드래그하면 화면이 전환되고 2초마다 화면이 자동으로 전환되는 예제 - MainActivity.javapackage com.example.day0404; import android.os.Bundle;import android.os.Handler;import android.support.v4.view.ViewPager;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnClickListe.. 2015. 4. 7.
안드로이드 액션바 (ActionBar) ●액션바(Actionbat)- 앱 상단에 나오는 네이게이션 모드를 제공해 주는 바이다. 유저의 위치를 확인시켜주고 메뉴등을 제공해 줘서 유저가 앱을 더 편리하게 사용하도록 한다. - 안드로이드 버전 11부터는 Activity에 이미 액션바가 지원된다. 개발자가 매니페스트에 설정하지 않으면 나오지 않는것 뿐이었다. 이전 버전 개발시 반드시 ActionBarActivity클래스를 상속 받아야 한다. - 액션바를 사용하려면 매니페스트에 테마(android:theme="@android:style/~~~)를 추가하면 된다. ●예제1 - ActionBarMain.javapackage study.bar; import com.example.day0328.R; import android.app.Activity;impor.. 2015. 4. 1.
안드로이드 프래그먼트(Fragment) ●프래그먼트(Fragment) - 스마트폰 화면이 커지고, 태블릿 피시의 등작으로 한 화면안에 여러 액티비티를 처리해야할 필요가 생겨났다. 그래서 하나의 액티비티안에 각각 여러개의 독립적으로 분할된 화면을 처리하기 위해 안드로이드 API 11(허니콤)부터 Fragment가 등장했다. - Fragment를 상속받은 클래스를 만들고 FragmentManager, FragmentTransaction를 이용해서 화면 처리를 한다. ●예제- 버튼A, B, C를 누르면 화면 변경되는 예제(지금은 잘 안쓰는 방법) - FragmentTest.javapackage study.fragment; import android.app.Activity;import android.app.FragmentManager;import a.. 2015. 4. 1.
안드로이드 애니메이션2 ●예제- 쓰레드를 이용하여 사용자가 직접 애니매이션 효과를 만들어 본다. 아래 예제는 화면을 터치하면 이미지가 움직이는 예제이다. - AniActivity.javapackage study.thread; import com.example.day0328.R; import android.app.Activity;import android.os.Bundle; public class AniActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.ani_layout);}} - MyView.javapackage stu.. 2015. 3. 30.
안드로이드 핸들러(Handler) ●핸들러(Handler) - 안드로이드는 자바표준의 쓰레드를 그대로 사용한다. 단, 주의할건 쓰레드의 대상이 UI제어일 경우 직접 제어할 수 없고 반드시 Handler나, AsyncTask를 이용해야 한다. - 안드로이드에서는 메인쓰레드만 UI를 제어할 수 있고, 이벤트를 제어할 수 있다. 따라서 개발자가 정의한 쓰레드를 이용한 UI 제어를 허용하지 않는다. 그래서 개발자 정의 쓰레드는 핸들러를 이용하여 간접적인 요청을 시도하여 그래픽을 처리할 수 있다. ●예제 - CountActivity.javapackage study.thread; import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.v.. 2015. 3. 30.
안드로이드 쓰레드 (Thread) ●쓰레드(Thread)- OS가 여러 프로세스를 동시에 처리하듯, 자바의 JVM도 세부 실행부를 생성하여 독립적으로 실행할 수 있는데, 이러한 독립적 세부 실행단위를 '쓰레드'라고 부른다. - 특정 클래스를 쓰레드 클래스로 정의할 경우, 메인 실행부와는 별도로 독립적인 수행단위가 될 수 있다. - 개발자가 독립적으로 수행할 코드를 run메서드에 작성해야 한다. - run메서드는 개발자가 직접 호출해서는 안된다. 실행여부는 시스템인 JVM이 결정해야 한다. 만일 개발자가 run메서드를 호출하면 메인쓰레드가 실행되므로 그냥 일반 메서드 취급된다. 그래서 start()로 호출해야한다. - 쓰레드는 run메서드가 끝날때 죽는다. 만약 run()안에 무한루프를 넣으면 run()메서드가 끝나지 않아서 쓰레드가 죽지.. 2015. 3. 26.
안드로이드 애니매이션1 (Animation) ●애니매이션(Animation) - 안드로이드 자체적으로 간단한 에니메이션 효과가 지원된다. - 안드로이드에서는 트윈 에니메이션을 지원한다. 일반적인 프레임에니메이션과는 차이가 있다. * 프레임 에니메이션 - 여러장의 이미지를 짧은 시간에 보여줘서 움직이는 것처럼 보여줌 * 트윈 에니메이션- 시작부터 마지막 사이의 에니메이션 효과를 내부적으로 예측 연산하여 보여줌 - 안드로이드에서 제공하는 시스템 애니매이션은 호출만 하면 된다. 대신 종류가 적다. 그래서 개발자가 직접 애니매이션을 제작해야 할 경우 쓰레드(Thread)를 이용해서 제작한다. - res/anim 안에 애니매이션 효과에 관한 xml파일을 만든 후 이 xml을 위젯에 적용한다. ●트윈 에니메이션 예제 - AniActivity.javapacka.. 2015. 3. 25.
안드로이드 캔버스(Canvas) ●캔버스(Canvas) - 화면에 어떤것을 그릴때 사용한다. - 뷰의 onDraw()메서드 재정의가 필요하다. - 안드로이드에서 제공하는 대부분의 안드로이드 위젯은 안드로이드에서 필요한 것이므로 개발자가 그래픽 처리를 함부로 하지 않는게 좋다. ●예제 - DrawTest.javapackage study.graphic; import com.example.day0321.R; import android.app.Activity;import android.os.Bundle;import android.widget.Button; public class DrawTest extends Activity{protected void onCreate(Bundle savedInstanceState) {super.onCreate(.. 2015. 3. 25.
안드로이드 리스트뷰2 (ListView), Adapter 재정의 ●Adapter 재정의- Adapter의 자식 개체중 ArrayAdapter는 단순한 텍스트만 보여주고자 할때 사용한다. 개발자가 정의한 복잡한 아이템 위젯은 지금가지 존재하지 않았던 새로운 위젯과 마찬가지이므로, ArrayAdapter가 보여줄 수 없다. 그래서 개발자가 직접 Adapter클래스를 상속받아 재정의해서 사용해야한다. ●예제 - FruitActivity.javapackage com.example.day0321; import java.util.ArrayList; import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView; public cla.. 2015. 3. 25.
반응형