8월, 2018의 게시물 표시

Android Examples App : 메뉴화면 구성

이미지
안드로이드 스튜디오에서 프로젝트를 생성하면 <그림 1>과 같은 모습인데 <그림 2>의 XML소스를 보면 기본 레이아웃이 ConstraintLayout이다. ConstraintLayout에 대해서는 나중에 레이아웃부분에서 다루기로 하고 여기서는 메뉴화면 구성을 위한 기본설명만 진행한다. <그림 1> <그림 2> 우선 메인화면에 "Hello World!" 텍스트를 가진 TextView를 제거하고 앞으로 사용하게될 메뉴화면을 ListView로 구성한다. ListView에 대해서는 나중에 Container 부분에서 살펴보도록 한다. <그림 3> <그림 4> 먼저 <그림 1>에서 TextView를 삭제하고 "Palette"에서 "Containers"를 선택한 후 "ListView"를 Drag & Drop으로 ConstraintLayout의 TextView가 있던 위체 집어 넣으면 <그림 3>과 같은 모습이 된다. "Component Tree" 뷰의 ListView 우측에 빨간색 경고아이콘이 표시되는데, 이 아이콘을 클릭하면 <그림 4>와 같이 오류메시지를 자세히 알려준다. Missing Constraints in ConstraintLayout This view is not constrained vertically: at runtime it will jump to the left unless you add a vertical constraint  The layout editor allows you to place widgets anywhere on the canvas, and it records the current position with designtime attributes (such as lay

Android Studio : Git 설정

이미지
안드로이드 스튜디오 프로젝트를 GitHub나 Bitbucket 등 Git와 연동하는 방법에 대해서 알아본다. 여기서는 무료로 사용할 수 있는 Bitbucket을 사용하도록 한다. 우선 안드로이드 스튜디오에서 샘플로 사용할 프로젝트를 간단히 생성한다. <그림 1> 프로젝트가 생성되면 메뉴바에서 "VCS > Enable Version Control Integration..."을 선택하면 <그림 2>와 같은 대화창이 열린다. "Select a version control system to associate with the project root:"를 "Git"로 선택하고 "OK"버튼을 누른다. 여기서 좌측 프로젝트 파일목록을 보면 최초 프로젝트를 생성했을 때 모습인 <그림 3>과 "Enable Version Controll Integration"을 설정한 모습인 <그림 4>이 차이가 난다. 일부 파일들의 색상이 갈색으로 변경되었다. <그림 2> <그림 3> <그림 4> <그림 5> 메뉴바에서 "VCS > Git > Add"를 누르면 잠시 작업을 하고 좌측 프로젝트 파일목록을 보면 <그림 5>와 같이 일부 파일명의 색상이 녹색으로 또 달라진 것을 볼 수 있다. 이제 마지막으로 "commit"과 "push"를 해보자. 메뉴바에서 "VCS > Commit..." 또는 "VCS > Git > Commit Directory..."를 누르면 <그림 6>과 같은 대화창이 열린다. "Commit Message"에 간단히 "Init pr

Android Examples App : 프로젝트 생성

이미지
Android Studio를 이용해서 Layout, View, Widget 등 각 요소들을 하나씩 추가해 가며 Examples App을 만들어 보자. 오늘은 첫 번째로 프로젝트 생성과 App 기본틀을 만든다. 앞으로 이 앱을 기본틀로 추가 및 확장해 나갈 것이다. <진행순서> Android Studio를 실행해서 "Welcome to Android Studio"창에서 "Start a new Android Studio project"를 클릭한다. (이미 열려 있는 프로젝트가 있다면 "File > New Project"를 클릭한다.) "Create Android Project"화면에서 "Application Name" 항목에 "Android Examples App"을 입력하고 "Next"버튼을 누른다. "Target Android Devices"화면에서는 모두 기본값으로 두고 "Next"버튼을 누른다. "Add an Activity to Mobile"화면에서도 기본 "Empty Activity"를 선택하고 "Next"버튼을 누른다. "Configure Activity"화면에서도 모두 기본값으로 두고 "Finish"버튼을 누른다. 위 5번 항목까지 진행을 하면 Android Studio가 몇 가지 작업을 진행한 후 <그림 6>과 같은 화면을 보여준다. 프로젝트 생성 및 기본틀이 완성되었다. 메뉴 또는 툴바에서 "Run"을 클릭해서 앱을 실행한다. "Select Deployment Target"화면에서 실제 기기가 연결되어 있으면 "Connected Devices"에 표시되며 기존에 생성한 에뮬레이터가 있다면

Android Studio Build Error

이미지
Android Studio(AS)로 새 프로젝트를 생성 후 초기 빌드 시 다음과 같은 에러가 발생한다. Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details. <해결방안> 모듈용 "build.gradle"파일을 열고 dependencies 영역에 다음을 추가하고 우측 상단의 "Sync Now"를 클릭한다.

apt-get install

apt-get의 "install" 다음에는 설치 또는 업그레이드를 원하는 하나 이상의 패키지가 온다. 각 패키지는 완전한 이름을 가진 파일 이름이 아닌 패키지 이름이다 (예를 들어 데비안 시스템에서는 apt-utils_1.2.10_amd64.deb가 아닌 apt-utils가 된다). 패키지에 필요한 모든 패키지 설치를 위해 지정된 이름도 설치된다. /etc/apt/sources.list 파일은 원하는 패키지를 찾는 데 사용된다. 하이픈이 패키지 이름에 추가되며 (공백없이) 식별 된 패키지가 설치되면 제거된다. 마찬가지로 더하기 기호를 사용하여 설치할 패키지를 지정할 수 있다. 이러한 기능은 apt-get의 충돌 해결 시스템에 의한 결정을 무시하는 데 사용될 수 있다. 특정 버전의 패키지는 패키지 이름과 패키지 버전을 선택할 수 있다. 그러면 해당 버전이 설치용으로 배치되고 선택된다. 또는 패키지 이름 뒤에 슬래시와 배포 버전 또는 아카이브 이름 (stable, testing, unstable)을 지정하여 특정 배포버전을 선택할 수 있다. 두 버전 선택 메커니즘 모두 패키지를 다운 그레이드 할 수 있으므로 주의해서 사용해야 한다. 또한 시스템에있는 모든 패키지를 업그레이드하지 않고 하나 이상의 이미 설치된 패키지를 업그레이드하려는 경우에도 사용할 수 있다. 현재 설치된 모든 패키지의 최신 버전을 설치하는 "upgrade"대상과 달리 "install"은 지정된 패키지의 최신 버전 만 설치한다. 업그레이드하려는 패키지의 이름을 제공해야한다. 최신 버전을 사용할 수있는 경우 위에 설명 된대로 해당 패키지의 종속성을 다운로드하고 설치한다. 마지막으로 apt_preferences 메커니즘을 사용하여 개별 패키지에 대한 대체 설치 정책을 작성할 수 있다. 지정된 표현식과 일치하는 패키지가 없고 '.', '?' 또는 '*'가 포함된 표현식은 POSIX 정규 표현식

apt-get dist-upgrade

apt-get의 "dist-upgrade"는 "upgrade" 기능을 수행 할뿐만 아니라 새 버전의 패키지로 종속성을 변경하는 것을 지능적으로 처리한다. apt-get은 "smart"충돌 해결 시스템을 가지고 있으며, 필요하다면 덜 중요한 패키지를 희생하여 가장 중요한 패키지를 업그레이드하려고 시도한다. 그러므로 "dist-upgrade"명령은 일부 패키지를 제거 할 수 있다. /etc/apt/sources .list 파일에는 원하는 패키지 파일을 검색 할 수있는 위치 목록이 있다. 또한 개별 패키지의 일반 설정을 재정의하기위한 메커니즘에 대한 apt_preferecnces도 참조한다. <형식> apt-get dist-upgrade

apt-get upgrade

apt-get의 "upgrade"는 /etc/apt/sources.list에 나열된 소스에서 현재 시스템에 설치된 모든 패키지의 최신 버전을 설치하는 데 사용된다. 현재 설치된 패키지가 제거되지 않았거나 아직 설치되지 않은 상태에서도 현재 설치된 패키지를 사용 가능한 새 버전으로 업그레이드된다. 다른 패키지의 설치 상태를 변경하지 않고 업그레이드 할 수 없는 현재 설치된 패키지의 새 버전은 현재 버전 그대로 유지된다. apt-get은 패키지의 새 버전이 사용 가능하다는 것을 알고 있어야 하기 때문에 먼저 "update"를 수행해야 한다. <형식> ​​​​​​​ apt-get upgrade

apt-get update

apt-get의 "update"는 소스에서 패키지 색인 파일을 다시 동기화하는 데 사용된다. 사용 가능한 패키지의 색인은 /etc/apt/sources.list에 지정된 위치에서 가져온다. 예를 들어 데비안 아카이브를 사용하는 경우, 이 명령은 Packages.gz 파일을 검색하여 새로운 패키지와 업데이트된 패키지에 대한 정보를 사용할 수있게 한다. "update"는 항상 "upgrade" 또는 "dist-upgrade" 전에 수행되어야 한다. 패키지 파일의 크기를 미리 알 수 없으므로 전체 진행률 표시는 정확하지 않다. <형식> apt-get update