[Powered by Google Translate] [세미나] [안드로이드 애플 리케이션 (지금 젤리 콩!) [요르단 Jozwiak] [하버드 대학] [이 CS50입니다.] [CS50.TV] 안녕하십니까, 그리고 안드로이드 애플 리케이션 (지금 젤리 콩!) 세미나에 오신 것을 환영합니다. 때문에 그것은, 물론, 젤리 콩 지금이라고 OS의 최신 버전은 젤리라고합니다. 작년 안드로이드에 대해 얘기하고이 기​​본적으로 동일한 세미나를했을 때 나는 진저 브레드에 대한 디자인 패턴과 문체의 선택을 제시했다 아이스크림 샌드위치는 시간에 나와 있었다하더라도, 이것은 우리가 조금 앞으로에 대해 이야기 할 것입니다 무언가이다. 안드로이드는 물론, 조각 몇 가지 문제가 있습니다 그래서 최근 구글 운영 체제는 일반적으로 정말 불행하게도, 잠재적으로 최대 1 년에 대해 사용자들에게 공통이 될 것 아닙니다. 하지만 무시하고, 우리는 이유를 왜 많이 얘기하자 안드로이드는 IOS보다 훨씬 낫다. 좋아, 우리는 안드로이드 대 IOS에 대해 이야기 할 것 당신이 단지 하나의 슬라이드에 설정거야 방법에 약간의 디자인 패러다임, 이 작년과 큰 차이가 난 그냥하고 싶은 것입니다 작업 몇 가지 개념 일까지 확대 다음 운영 체제와 정말 기본 예제로 이동합니다. 사실, 구글은 첫 번째 응용 프로그램을 구축하기위한 설명하는 단지 예를 들어, 우리는 함께 그것을 통해 이동하고 단지 설명 할 것이다. 나는 당신의 많은은 C로 코딩, 그래서 자바는 이미이 될 것입니다 다른 관점, 당신의 발을 얻을 것이다이 방법은 젖은 잘하면 그것으로 조금 더 편안한 느낌. 간단히 요약, 안드로이드 대 IOS. 안드로이드 25 달러이 한 번 개발 비용은, 거기에 올해 $ 100 당 물건의 없음. 의미 제한은 없습니다 즉, 내가 응용 프로그램을 제출하려는 경우 난 그냥 제출하고, IOS에 대해이 같이 아무 승인 프로세스가 없습니다. 당신은 Eclipse를 사용하여 Java로 개발하는 데 얻을 이는 크로스 플랫폼, 그래서 당신은 Mac을 사용하는 경우 그것은 중요하지 않습니다 Windows 또는 일부 Linux 시스템. 물론, 이오스와 함께 당신은 Mac에서 엑스 코드를 사용해야합니다 그리고 안드로이드는 많은 사람들이 사용됩니다 당신은 당신의 애플 리케이션은 몇 가지 시정의 종류 혹은를 가지고 싶은 경우에 광고에서 약간의 돈을 당신은 아마 안드로이드 혜택을 누릴 가능성이 높아집니다. 항상 안드로이드에 대한 알려져있어 한 가지 IOS는 매우 자신의 방식으로 고정되는 반면, 사용자 정의의 극단적 인 금액입니다 그들은 유지할 수 있도록 보안과 모든 작은 부분을 제어 자신의 OS 및 개별 응용 프로그램 내에서 설계. 안드로이드는 매우 자유 양식이며, 더 많은 가능성이있다. 좋아, 어떤 디자인 패러다임. 단지 IOS처럼 여기 주목은 정제 및 아이폰과 아이팟 터치를 가지고 지원하려는 경우, 그들은 다스 장치와 마찬가지로, 말, 지원해야 역사 일뿐만 아니라. 안드로이드를 사용하면 장치의 수백을 지원해야 그래서 구글 구현하려고했는지 몇 가지가 있습니다 사용자가 좀 더 일관성있는 경험으로 만들려면, 그러나 우리는 또한 단편화의 문제가 있다는 것을 의미 방법에 대해 얘기하자 당신은 지속적으로 지원할 알고 있어야합니다. 조각은 많은 다른 운영 체제가 있다는 것을 의미합니다 동시에 모든 안드로이드를 실행하는 다른 하드웨어와 다양한 전화, 따라서이 그래프는 여기에 약 6 개월 돌아갑니다. 네, 6 개월, 그리고 당신은 얼마나 어두운 밴드를 볼 수 있습니다 하단에 여름에 나온 젤리가있다 그리고 당신은 아마 지금 휴대폰의 약 2 % 그것을 가지고 볼 수 있습니다. 아이스크림 샌드위치는 년 전 나온 와 휴대폰의 분기가 있습니다. 년 전에서 OS 버전을 사용하는 휴대폰의 많은 여전히​​있다. 구글은 사용자 경험을 위해 무엇을 위해 노력하고 있습니다 한가지 응용 프로그램에 걸쳐 일관성이 많은, 벌집 시작 태블릿 버전은 다음 아이스크림 샌드위치와 젤리, 그들은 정말이 작업 표시 줄의 사용을 강조하려는 이것은 당신이 여기에서 상단에 볼 수있는 것입니다 이 작은 설정 버튼 등 여기 다. 그것은 디자인 선택이다. 이제 3 점을 볼 때마다,이 클릭을 의미합니다 및 설정의 일종을 가지고 드롭 다운 메뉴가있을 것입니다. 내가이 버튼을 클릭 한 때문 만 나타납니다. 이것은 그들이 좀 더 일관성있는 응용 프로그램을 만드는 데 사용하려고하는 무언가이다 전반적 그래서 사용자는 균일 한 경험을 더 나은 감각을 가지고 있습니다. 당신이 집에서 시청하는 경우 좋아, 경우에 당신은 이미 이런 짓을하지 않았거나 당신은 코딩 환경을 설정하려면 다음이 단계를 수행 할 수 있습니다. 그것은 여기에 웹 사이트로 이동 포함됩니다. 당신은 안드로이드 SDK를 설치 한 구글 수 거기에 약간의 설명을 따르십시오. 그들은 당신에게 모든 걸 말해. 그들은 당신이 SDK를 다운로드 이클립스 클래식 버전을 설치해야 비록, 물론, 우리는 자바로 코딩을하고 있습니다. 그 다음이 ADT, 안드로이드 개발 툴이 하나를 추천하고, 당신은 할 수 있습니다 이클립스에 설치하는 플러그인입니다 이클립스에서 안드로이드 훨씬 더 능률적 인 경험이 있습니다. 그것은 당신에게 약간의 그래픽 사용자 인터페이스를 제공합니다 보기를 설계에 대해 당신에게 더 많은 지원을 제공합니다 그리고 능력은 에뮬레이터 및 물건의 모든 종류와 함께 시작합니다. 응용 프로그램 프레임 워크입니다. 나는 안드로이드에서 프로젝트를 구성하는 방법에 대해 얘기하고 싶어 그리고, 우리는 간단한 예제로 가서 희망합니다 당신은 어떤 시점에서 질문을하고 그것의 말에 편안하게 느낄 수 있습니다. 우리는 먼저 몇 가지 용어가있다. 활동은 응용 프로그램을 시작할 때 당신이 볼 수있는 화면과 같다. 전체 경험은 활동 자체 그래서 당신은, 화면이나보기로 생각할 수 하지만 실제로 그것의 소스 코드 측면이다. 우리는 여전히보기의 실제 인터페이스 부분을 호출합니다. 그것은 PSET 7 우리는 컨트롤러와 다음 뷰를 가지고 어떻게 같은 종류의입니다. 활동, 더 많거나 적은 컨트롤러 그리고보기는 우리가 XML의 관점에서 무슨 일을하는지입니다 그 해당 활동과 연관되어 있습니다. 단편 아이스크림 샌드위치 향후에 구현 무언가이다. 그것은 단지보기의 일부를 복용의 생각이나 활동의 별도의 영역으로 그들을 나누어 우리가 할 수 있도록 이러한 여러 가지 장치에 대한 우리의 코드를 더 사용할 수 있도록 우리는 지원해야하고, 단지에 노력 방법 그 또한 더 많은 코드를 인수 분해. 서비스는 잠재적으로 음악이나 탐색 방향을 연주 같은 배경 것들입니다. 콘텐츠 공급자는 이러한 운영 체제 내에서 API를하다 즉,이 같은 연락처 정보와 같은 공유 데이터에 액세스 할 수 있도록 그리고 목적은 우리가 시작 할 때 우리가 사용할 것입니다 무언가이다 현재의 활동에서 새로운 활동. 안녕하세요 안드로이드, 이것은 우리가 얘기하자있는 프로젝트가 될 것입니다. 나는 실제로 당신을 위해 그것을 할 것, 그리고 우리가 버튼을 클릭 곳에 우리가 일을 할 것이다 일부 텍스트 및 새로운 활동을 시작과 함께. 매우 간단하지만, 난을 가고 싶어 어떻게 이런 프로젝트로 이동합니다. 새 프로젝트를 만들 때 이클립스에서 볼 수 있습니다 안녕하세요 안드로이드 불리는이 프로젝트가있다. 그런 다음 여기에 폴더의 전체 무리가 있습니다. 당신이 정말로와 함께 우려 것들, 소스 폴더입니다 리소스 폴더, 입술, 다소 라이브러리에 대한 라이브러리 폴더에. 그냥 그래서 우리는 그와 같은 페이지에있어 당신은 새 프로젝트를 만들 경우 나는 그것이 HelloAndroid 호출 할 경우 그럼, 여기 바로 작업을 수행 할 수 있습니다 그리고 자동으로 우리에게 정보를 왕창 않습니다. 패키지 이름은 고유 식별자로되어있다 하나가 있다면 그는 일반적으로 웹 사이트와 연관​​ 될 것이다. 예를 들어,이 net.cs50.helloandroid를 호출합니다. 그리고 난 이미 한번이 프로젝트를 만들었습니다. 그래, 미안 해요. 하자가 HelloCS50 호출합니다. 그리고 우리가 할 원하는 아이콘 어떤 종류의 같은 것들을 요구할 것이다. 이 때문에 안드로이드 개발자 도구 인터페이스의 모든 것입니다 우리는 이클립스에 추가 한 플러그인, 그래서 우리는 같은 것들을 선택할 수 있습니다 어떤 아이콘을 우리가 원하는 우리가 원하는 경우에, 그것은 그 깊이에 갈 것입니다. 그러나 결국, 그냥 프로젝트를 만들 모든 것이 바로 여기에 나타납니다. 나는 다른 화면에 보여로 우리는 소스 폴더를 가지고 있고,이 모든 곧 무엇을 의미하는지에 대해 이야기 할 것 하지만 당신은 즉시 그것을 HelloCS50 화면으로 우리가 걸립니다 것을 볼 수 있습니다. 텍스트와 텍스트 필드 레이아웃을 추가 여기에 몇 가지 버튼이 있습니다. 그것은 엑스 코드와 같은 일종의지만 불행히도 매우 능률적으로. 그러나 클립이 일을 위해 특히 친구와 ADT 될 것입니다. 좋아요, 소스 폴더는 어디 자바 파일을 개최하고,이 사실은 프로그램의 시작입니다 수 있습니다. 그것은 기본적으로 컨트롤러처럼. 우리는 화면의 레이아웃을 유지합니다 곳 리소스 폴더 또는 입술입니다 이미지, 사운드, 텍스트, 애니메이션 및 다른 모든 것들, 라이브러리, 분명, 도서관. 그리고 매니페스트, 그것은 안드로이드 시스템이 알고있는 방법 어떻게 응용 프로그램과 상호 작용합니다. 그것은 권한에 대해서도 알려줍니다 무엇 활동은 실제로 실행됩니다. 그것은 당신의 응용 프로그램을 실행하는 데 필요한의 모든 필수 정보입니다. 소스 폴더입니다 - 만약 당신이 바로 여기에서 볼 수 있듯이 우리가 그것을 확장합니다. 그리고 예제 코드를 보면 -이 것이 기본 코드입니다. 우리가 그것을 호출로, MainActivity. 기본적으로, 우리는이 활동이로드라는 함수이다, OnCreate에서 얻을 그래서 당신은 OnCreate에서 (savedInstanceState)를 호출합니다. 이 정보의 비트를 복원합니다 경우 응용 프로그램은 일시 중지되었다. 당신이 볼 수있는 전체 작업 수명주기 도표가있다 당신이 그것에 깊이있는 좀 더 얻을 때, 하지만 코드의 가장 중요한 라인이 setContentView 함수가 이는 레이아웃 리소스 파일을로드합니다. 그런 것을 여기에서 OnCreate에서 기본적으로 수행하는 것은 말하는 것입니다 나는이 레이아웃을로드하려면이 작업을 만들 때. 그리고 우리는 레이아웃이 두​​ 번째에 무엇에 대해 이야기 할 것입니다. 우리가 정확히이 보이는 시작했다, 기본적으로 우리는이 일을 이클립스와 우리를 위해 일을 ADT 때문에 이것은 우리를 위해 만들어 놨습니다 모든 상용구 코드 우리는에 이동하고 우리가 원하는대로 물건을 변경할 수 있습니다. 내가 말했듯이 우리가 레이아웃을 유지하는 곳 리소스 폴더, 이것은이다 어떤 종류의 측면에서 drawables 이미지 - 그들은 drawables - 다음 사운드 파일, 메뉴라고 하더군요. 그것은 좋은 정렬 된 방식으로 XML의 전체 무리의 방법입니다. 당신이 볼 수 있듯이,있다. HDPI, ldpi, MDPI 및 drawables에 대한 xhdpi 폴더는. 이들은 다른 화면 밀도 인치당 때문에 고밀도 픽셀입니다 저밀도, 중간 밀도, 여분의 고밀도. 이 다시, 그래서 우리는 이러한 모든 다른 장치를 지원할 수 있습니다 이상적으로, 당신은 각 다른 해상도에 대해 서로 다른 이미지를 갖게됩니다. 우리는 다른 활동에 사용되는 모든 다른 레이아웃을만한 곳 레이아웃입니다. 그들은 또한 조각에 대한 레이아웃을 포함 할 수 있습니다 이는 기본적으로 부분적인 활동을 의미한다. 당신은 당신이 전화를 회전 할 때마다 멋진 일을 수행하려는 경우 당신은, 당신은 다른 폴더로 레이아웃 경관을 할 수있는 다른 레이아웃을 갖고 싶어 그리고 안드로이드는 자동으로 리소스 폴더에서이 규칙의 전체 무리가 그래서, 휴대 전화의 현재 설정에 따라 다른 폴더를보고 알 수 당신이 사용하는 하드웨어의 어떤 종류. 마찬가지로 여기,이 값-V11과 값-V14 그리고 디폴트 값이이 용 폴더 또한, 자체 값은,이 운영 체제의 모든 버전에 걸쳐 기본 값이 될 것입니다. 반면에, V11과 V14은 벌집에 해당 그리고 아이스크림 샌드위치, 각각. 다시 말하지만, 이러한-이내에 폴더를 다른 문자열입니다 방법입니다 과 스타일, 그래서 당신은 당신의 애플 리케이션의 모양을 사용자 정의 할 수 있습니다 또는 잠재적으로 그 기능, 즉 아마 좋은 생각이 될 것이지만, 운영 체제의 버전에 따라. 그리고 여기이 모든 이야기. 또, 그리기, 원시, 레이아웃, 가치. 기본적으로, 우리는 지금 안녕하세요 안드로이드 나 안녕하세요 CS50에 가면 그냥 다음과 같이 표시됩니다. 그것은 세계의 인사합니다. 당신은 안드로이드 텍스트로 여기에서 볼 수 있듯이 이 텍스트 뷰의 텍스트, 이것은, 기본적으로 그냥 레이블 우리는 IOS에서 호출 할 것입니다. 그것은이 재미 표기법 @ 문자열 / 그래서 hello_world 있습니다. 이것은 지금 우리가 할 수있는 - 우리는 모든 문자열을 추출하는 시​​도이다 안드로이드에 하드 코드 된 문자열의 별도의 폴더에, 이는 values​​.strings에 있어야 발생합니다. 우리는 여기에서 보면, 우리는 우리가 여기에 저장된 하드 코딩 된 문자열이 있다고 볼 수 있습니다 의 안녕 세계를 위해, 그리고 그것은 안녕하세요 세계라고하며, 이것이 일종의 원하는 일대 플랫폼에서 일반적인 디자인 결정 문자열은 우리가 잠재적으로 변경할 수 있도록하려는 물건의 종류입니다. 우리는 XML에서 우리의 소스 코드 파일에서 F를 제어하지 않습니다. 우리는 우리가 기회를 얻을 때마다이를 변경할 수 있도록합니다. 이 XML 파일 strings.xml은 추출 방법 그렇지 않으면 우리 레이아웃 자원이 될 하드 코드 된 문자열 또는 우리의 소스 코드를합니다. 우리는 응용 프로그램에 대한이 중요한 정보를 보관하는 곳 매니페스트입니다. 그것은 패키지 이름을 포함합니다. 즉, 고유 식별자 할 수 있습니다. IOS 응용 프로그램의 이름을 앱 스토어와는 달리 고유하지 않아도, 당신은 실제로 응용 프로그램의 이름을 변경할 수 있습니다 당신은 내가 화가 조류으로 시작, 그래서 만약에 제출 한 후 그리고, 나는 갱신을하고, 나는 새로운 버전을 공개하고 싶지 않아 나는 동일한 릴리스주기에있어 동안 2 내가 화가 조류 부를 수있는 것 같아요. 그냥 업데이트로 표시됩니다. 고유 할 수있는 유일한 것은,이 패키지 이름입니다 어떤 사람은 많지 않습니다 볼 수 있습니다. 당신은 소스 코드 또는 오류의 일종이있을 경우 확인 된 경우 글쎄, 당신은 볼 것입니다. 구성 요소는 활동을 포함, 그래서 우리는 선언해야한다 우리가 사용하는 활동의 어떤 종류. 이 물건의 권한 일종이다. 안드로이드는이 엄격한 신청 절차가 없기 때문에 대신에 앱을 제출하기 위해 그들은 단지 모든 사용 권한을 기반 않는다 그리고 매니페스트에서 물건을 선언. SDK 버전은 중요하다. 우리는 SDK의 최소 버전 무언가로 사용을 설정할 수 있습니다. 물론, 당신은 코드를 만들려면 최신 운영 체제 및 디자인. 아마도 새로운되지 않습니다, 아마 젤리. 어쩌면 당신은, 주로 아이스크림 샌드위치에 대한 설계하고자 그들은 디자인 결정의 측면에서 거의 동일하지만 와 실제 라이브러리와 API. 하지만 아닌 사람이 원래 안드로이드의 도넛 방법 다시 버전 같은 경우 - 아직 말을 한 다음 응용 프로그램을 다운로드하려고하는 사용하는 일이 사람 그것은 내 휴대폰에 당신이 최소 버전을 설정할 수 있습니다 작동하지 않습니다 그리고 진저 나 아이스크림 샌드위치 할 수있다 당신이 편안하게 복종시키는을 느끼거나 뭐든간에. 그리고 이것은 매니페스트의 예입니다. 우리는 조금의 실제 한 곳에서 볼 수 있습니다. 그래, 우리는 지금 데모 앞으로 갈 수 있습니다. 당신이 구글 안드로이드 첫 번째 응용 프로그램 또는 그런 식으로 뭔가를 만들 경우이 데모입니다. 우리는 거기에서 일어나는 모든 통해 갈거야 그리고 미안 해요, 그냥 여기에 어떤 범위로 자바를 알고있는 참조? 좋아, 그럼 자바는 대부분의 사람들이 CS50 나오는 새로운 코딩 언어입니다. 간단히, 그것은 여기에서 말하는 다시 이동 우리가 원하는 것은이 Hello World 응용 프로그램을 조정보다는보다 그것은하지 모두가 시작과 안녕하세요 세계는 말한다 그 활동 이름 때문에 그것은 상단에 인사 CS50 말한다 우리는 텍스트 필드와 버튼을 시도거야 우리가이 버튼을 누를 때 그 텍스트를 가지고 않도록 텍스트 필드로부터 새로운 활동을 시작, 그것은 말할 것이다 해당 텍스트는 활동했다, 이것은 비교적 간단 뭐든간에. 그것은 매우 흥미 아니다. 이 같은 모든 응용 프로그램을 해제하고 싶지 않아요. 하지만 몇 가지 중요한 디자인 일을 보여줍니다. 우리는, 레이아웃 파일, 매니페스트와 상호 작용해야합니다 소스 코드와 함께, 당신은 다른에서 하나의 활동을 시작하는 방법을 볼 수 있습니다. 우리는 우리의 첫 번째 활동에 대한 레이아웃과 함께 시작합니다 이는 내가이 작은 종류의 알고 하지만 지금 볼 수있는, 그것이 전부는 우리가 만든 우리의 로고를 가지고있다 활동 이름, 그리고 중앙 인사 세상을 말한다. 대신, 내가 먼저, 선형 레이아웃으로이 문제를 만들려고 해요 상대 레이아웃,이 모든 것들입니다 당신은 찾아 볼 수 있으며, 레이아웃 측면에서 어떤 시점에서를 통해 갈 가치가있다. 이것은 HTML처럼 많이 있습니다. 우리는, 프로그램 감각의 측면에서 가치가 아는 정말 말했습니다 하지만 당신은 제어 할 수 있도록 다양한 레이아웃이있다 그것은 스타일의 측면에서 단지 CSS 같아요. 여기 미학의 관점에서 진행이 많이가 있어요 그리고 그래, 그것은 학습 가치가 있지만, 그것은 당신이 보일 것 물건의 일종 당신은 가서 당신이 새로운 무언가를 필요로처럼 당신이 느끼는대로. 적어도 내가 함께 시작하려면 여기를 ADT 도구 중 일부를 이용할 수 있습니다. 나는 텍스트 필드를 만들거야, 그리고 난 버튼을 다할 것입니다. 서로 옆에 바로 넣어. 그들은 이미 적절하게 조정됩니다. 죄송합니다, 다시, 선형 레이아웃과 관련된 레이아웃의 차이로 돌아 오는 선형 레이아웃은 좀 더 많은 기능을 제공합니다 공간을 채우고 확인하는 측면에서 가로 또는 세로로 우리의 위치 확인해보세요. 선형 레이아웃과 관련된 레이아웃과 큰 차이 다른 뷰에 비해 상대적 배치 위치의 모든이며, 그것에 대해 좋은 점은 그릴 시간이 적게 걸립니다이다 운영 체제는 모든 코드에서 보이는이 간다라고하기 때문에 이 여기에 상대적으로, 여기. 그것은, 그것은 중첩 된 선형 레이아웃의 전체 무리보다 적은 계측을 의미합니다 이는 내가 대출 한 것들 여기에 수직으로 가고 싶었다면 내가해야 할 것이다. 나는 이미 몇 가지가 수평으로 가고, 그래서 내가 다른 선형 레이아웃을해야합니다 수직 둥지를,하지만 상대적으로 레이아웃을 수행 한 경우 내가 말할 수 to 오른쪽 아래 이러한 것들로 왼쪽이 내용을 유지합니다. 하지만 그들이 지금 채우려 때문에, 선형 레이아웃을 사용하려고 해요 그리고 당신은 이미 우리를 위해 이러한 일들을 많이하지 볼 수 있습니다. 모든 뷰는, 폭과 높이의 속성이 필요합니다 이 1의 무게를 가지고 발생, 이것은 1의 가중치가 그래서 그것은 전체 공간을 채 웁니다. 그러나 폭과 높이가 가장 중요하다. 바로 여기에이 ID 필드는 실제 레이아웃 내에서 중요하지 않습니다 우리는 상대 레이아웃을 사용하여 우리가 참조 할 수있는 말을하지 않는 한 다른 참조를 하나의 뷰 위치. 우리가 상대 레이아웃을 가지고 있다면 우리는이이 하나의 아래에 위치를 말할 수 또는 ID 위에 있지만,이 ID는 중요한 것 우리가 참조 할 수 있기 때문에 우리는 우리의 코드에서 사용하는 경우 이 방법으로 이러한 개인의 전망을 제공합니다. 그리고 당신은 아마 PSET 7에서 본 뭔가 태그 requestFocus를를 볼 수 있습니다. 필드 중 하나에 대한 자동 초점 태그 또는 그 라인을 따라 뭔가가 있었다. 한 것은 물론, 우리는 HTML에서처럼 할 수 통보는 ADT에 대한 좋은 것들 중 하나는 여기에 자동 완성한다는 것입니다. 그것은 엑스 코드 않았지만, 그럼에도 불구하고하지, 아마로 멋지게으로 우리는 힌트를 말씀하고 그것을 문자열의 일종을 줄 수 , 메시지를 작성 좋아 나는 그것을 순간을 제공하는 경우와, 여기 작은 과실을 얻을 수도 알 우리는이에 대한 문자열 리소스를 사용해야한다는, 나는 그것이 나를 위해 열심히 일을하자 그렇다면 나는 굴절 안드로이드와 추출 안드로이드 문자열을이 문자열을 선택할 수 있습니다. 나는 그것을 그 이름을 줄 수있는, 메시지를 작성 그리고 무엇 지금 그 하드 코딩 된 문자열을 대체합니다 않았다 문자열의. xml 파일에서 문자열에 대한 참조, 이는이 여기 지금을 의미합니다. 그리고,이 시점에서 약간의 사소한와 같은 추가 작업이 보인다 알고있다 하지만 당신은 물건의 전체 무리 문자열의 전체 무리를 가질 때 그건 정말 중요합니다, 특히 현지화 앞에서 언급 한 바와 같이, 안드로이드는 매우 세계적으로 사용되는 운영 체제이기 때문에 당신은 단순히 값 엉 또는 값-SP를 할 수있는 영어 나 스페인어 나 다른 언어 또는 뭔가. 그리고 당신은 아마도 아직이 경험하지 않은 우리는 웹 프로그래밍의 측면에서 많은 자바 스크립트를하지 않았기 때문에는, 그러나 우리는 또한 단추의 onClick이라는 필드를 수행 할 수 있습니다 이것은 우리의 레이아웃에서 참조하는 방법입니다 우리는 우리의 소스 코드에서 호출 할 특정 기능을 원하는. 나는이 된 sendMessage를 호출하는거야 그리고 여기에 주문 주요 활동에 뜻이 작품을 만들기 위해 나는 공개되어 함수를 만들어야합니다 그것은 레이아웃에 액세스 할 수 있도록합니다. 당신은 그냥 아무것도 반환하지 않기 때문에 그것은 무효이다. 우리는 된 sendMessage 전화 할게, 그리고보기를합니다 이는 우리가이 방법을 고정 할 수있는 상황의 일종이다 그 개인보기로 우리가 그것을 실행중인 경우. 당신이 발견 - 글쎄, 당신은 눈치 채지 못할 것이다 그리고 만약 내가 몰라 하지만이 시점에서 바로 여기 이보기는 아직 포함되지 않은 유형입니다 물론, 당신은 모든 유형을 포함하지 않음에 대해 CS50에서 알고있다. IDE의 같은 이클립스에 대한 좋은 점은있다 당신이 유형을 포함하는 것을 잊지 경우는 구불 구불 한 작은 빨간색 밑줄합니다 그리고 당신에게보기를 가져올 수있는 옵션을 제공합니다. 그 일을 신속하게 제어 전환 O이며, 그것은 가져옵니다 모두가해야하는 파일. 이제 우리는이 함수 된 sendMessage를 가지고, 이것은, 새로운 활동 MainActivity에서 메시지를 보낼 것입니다 우리는이 하나에서 새로운 활동을 시작할 의도를 사용하도록해야 할 것입니다 그래서 우리는 아마 전역 상수 나 또한 특히 공공 상수를 생성 할 수 있습니다 그것은 우리가 문자열을 참조하는거야 방법을 알고 도움이 될 것입니다 때문에 우리가 의도를 만들 때 우리는 단지, 새로운 활동을 호출하지 않는 그러나 우리는 또한 그것을 정보의 번들을 제공 할 수 있습니다. 번들은 실제로 안드로이드에서 사용하는 용어입니다, 그리고 그것은 그것에게 그것은 매우 정교한 데이터 유형이 될 수 없습니다 추​​가 데이터를 제공 말하는 방법 그러나 우리는 확실히 논리 값 또는 문자열이나 정수를 포함 할 수 있습니다. 그런 종류의 물건. 다음은 이러한 규정의 물어 주시기 바랍니다, 공공 최종 정적. 공개 중요한 하나입니다. 그것은 우리가 다른 소스 코드 파일에서이 변수를 액세스 할 수 있음을 의미합니다 그런 우리가 새로운 작업을 만들 때와 같이. 우리는이 파일에서 문자열을 참조 할 수 있습니다. 그것은 개인의 경우, 그것은 여기 개별 파일 제한의 의미합니다. 그러나 우리는 추가 메시지 등이 뭔가를 호출합니다. 이제 우리는이 함수를 만들었습니다, 우리는 버튼을 클릭하면이 함수가 호출됩니다. 그러나 우리는 기능, 분명히 아무 짓도 안 했어요. 지금 우리가하고 싶은 것은, 새로운 활동을 만드는 것입니다 그 활동은 실제로 실행됩니다. 이클립스에서 우리는 새로운 안드로이드 활동, 빈 활동을 말할 수있다. 우리는 그것에게 이름을 부여 할 수 있습니다. 보자는 우리의 결과 활동을 호출합니다. 그리고이 계층 적 부모 필드를 지정하는 방법 어떻게 활동은 서로 관련이 있습니다. 이 하나의 다른 작업에서 실행되기 때문에 우리는 부모 주요 활동이 있는지 지정해야합니다. 그리고 우리에게 이야기했을 어떤이 다음 필드에 클릭 한 수 또한 포함 된 일부 옵션 필드 하지만 ADT에 대한 좋은 점은, 다시, 여기 아래로 스크롤하는 경우이다 매니페스트에이 모든 정말 기본적으로 포함 된 것을 기억 우리는 처음 프로젝트를 생성 할 때 이제 우리는이 새 작업을 만들보다는 사용하기 때문에 단지 우리는이 일을 위해 자신의 GUI를 통해 갔다 때문에 우리 자신의 클래스 파일을 추가 그것은 이미 우리를 위해 매니페스트이 모두 추가 이는 지금 운영 체제가 불평하지 않습니다 것을 의미합니다 우리는이 활동을 시작하려고 할 때. 그리고 그것은 또한 물론, 그것 또한 문자열에 표시 레이블을 주었다. 그것은 우리의 백 엔드에 많은 것들을 않습니다. 어쨌든, 지금 우리는뿐만 아니라이 결과 활동을 가지고, 소스 폴더의 실제 소스 코드 파일, 그리고 당신은 볼 - 짧게에서이 만지 수 있습니다 우리는이 계층 적 부모에 대해 그것을 말했기 그것은이 onOption 선택한 것은이 분야 android.r.ide.home을 주었다. 이게 기본적으로 말하는 것은 메뉴 버튼은 이제 거기에있다 그 화면의 왼쪽 상단 모서리에있는 우리는 첫 번째 작업 표시 줄에 대해 이야기 어디 파워 포인트로 돌아 가면 때문에 계층 부모의 다시 지금 여기에 작은 화살표가의 우리는 우리가 실제로 실행하려면 - 후 수 있어야하므로이는 클릭 할 응용 프로그램을 다시 가서, 거기 우리에게 약간의 코드를 저장하는 방법입니다. 지금 잘 내, 그것은 잠시 동안 그것에 대해 불평을 할 것으로 보인다. 의 그 주석 수 있습니다. 지금 주문 실제로,이 2 개의 활동과 상호 작용 우리는이 모든 데이터를 포함하는 의도를 만들어야합니다. 된 sendMessage에서 지금은 코드의 일부 비트를 통해 크루즈에 갈거야 내가 가서 설명한다. 의도가 말했듯이, 서로 하나의 활동을 시작하는 방법입니다. 의도는 유형입니다. 우리는 변수 myIntent을 만들고 있습니다. 그리고 실제로 우리는 새로운 호출 할 필요가 왜 개체입니다. 그것은 익숙해이 조금 걸릴 수있는, 거기에 일반적인 자바의 사용이다. 이것은 우리가 활동이나 클래스 MainActivity를 사용하는 방법 그 방법의 의도는에서 무슨 활동을합니다 과 활동은 우리가 ResultActivity를 호출하는가는거야 그리고 그 자신의 클래스입니다. (가) 마련되어 있습니다. 내가 전에 언급 한 후, 우리는 편집 텍스트 필드에 해당 ID를 준 및 텍스트보기, 그래서 순서대로 프로그래밍 캡처 EDITTEXT에 존재하는 텍스트 우리는 findViewByID 불리는이 기능을 사용 이는 DOM에서 필드를 얻으려고 할 때 사용합니다 뭔가 비슷합니다. 강의에서이 약 아마도 데이비드 회담. 그러나 그것은 단지 얻는 방법 사람 즉 우리가 이러한 필드에 이러한 것들에 태그를 이유입니다. Id.editText1. 그것은 이미 나를 위해 autocompleting있어. 그리고 우리는 또한 포함 -이 있습니다 EDITTEXT을 지금 우리가 필드를 가지고 우리의 프로그램에서, 모든 findViewByID는 기본적이었다 않았다 당신은 우리에게 그 EDITTEXT에 대한 참조를 제공 생각할 수 있습니다. 이제 우리는 문자열이나 메시지를 얻으려면 우리가 사용하는 -을함으로써 그렇게 할 수 EDITTEXT 내 당신은 같은 EDITTEXT 생각할 수있는 구조체 - 우리는 그것에서 개체를 다른 방법의 전체 무리 자바로 전화 또는 필드와 속성에 부착. 내가 EDITTEXT 말할 때. 그것은 나에게 접근 할 수있는 기회를 제공 현재 텍스트를 얻을 것이다 같은 gettext에 같은 방법 그 EDITTEXT 한 다음 명시 적으로 변환 문자열로, 우리는 메시지를 저장했습니다. 이제 우리는 실제로 우리가 순간 전 생성하는 목적으로 뭔가를 싶습니다. 그것은 의도에서라고 같이 나는 여분 넣어 것 이는 다시, 내가 전에 말했듯이,이 번들을 만드는 방법 데이터의 전체 무리와 함께. 우리는 아래에이 사항을 저장하는지 알 수 있도록 별도의 메시지가 우리 태그입니다 그리고, 나는 메시지를 포함하고 있습니다. 그리고 우리가 실제로 그것을 매개 변수 myIntent을 제공하여 작업을 시작할 수 있습니다. 나는 윈도우 8로 업그레이드 때문에이 사실은 지금, 활동을 시작합니다 가 짧게 표시 약간의 오차가 될 수 있지만 그들을 무시하려고 할 수 있습니다. 그리고 이것은 안드로이드 에뮬레이터입니다. 잘하면 코드는 실제로 순간에 나타납니다. 다시 말하지만, 모든 작은 것들을 무시. 하지만 안드로이드 에뮬레이터는 운영 체제의 모든 버전을 에뮬레이트 할 수 있습니다 최초의 것들에서, 도넛, 진저 브레드. 이 젤리 4.1입니다. 하지만 지금 볼 수 있듯이, 이것은 우리가 만든 무언가이다. 이 MainActivity, EDITTEXT, 버튼이 있습니다. 내가 여기서 뭔가를 입력 할 수 있지만, 우리는이 시점에서 무엇을 누락? 우리는 메시지를 보낼 것 MainActivity에서 필드를 만든 다른 활동하지만,이 시점에서 우리는 다른 활동에 아무 짓도 안 했어요, 그래서 아무것도받을 수 없을거야. 우리가 이동하기 전에의 그 부분을 마무리 할 수​​ 있습니다. 이 결과 활동, 우리가해야 할 거 야 우리가 할 필요가있을 것이다로는 우리가 필요로하는 것 투 - is 우리는 또한이 활동에서 의도를 참조 할 수 있습니다 그래서 우리는 정말 간단 의도를 캡처해야합니다. 그것은 Activity 클래스에 포함 된 함수의 그래서 우리는 그냥 "의도에서 메시지를 가져옵니다."말할 수 "의도 myIntent는 = getIntent." 그리고 이것은, myIntent가 객체 우리 - 지금 줄 것이다 이는이 활동에 우리를 이끌어 의도에 대한 참조입니다. MainActivity를 호출하고 활동 결과에 추가 정보를 제공합니다. 결과 활동은 지금, 여기 주도 의도로 보인다 그리고 우리는 우리가 다른 하나에서 만든 메시지에 액세스 할 수 있습니다 getStringExtra, 이것은 나를 위해 자동 완성됩니다. 그리고, 우리는 태그 방식을 기억하는 데이터 비트 , 바로 여기 그것을이 공용 문자열이 필드를 제공하여이었다 이는 우리가 실제로 포함 된 문자열에 대한 태그입니다. 나는 MainActivity.Extra_Message을 말한다면 그것은 바로 거기, 그리고이 매개 변수 이름과 같은 종류입니다 우리는 컨트롤러에서 템플릿에 코드를 전달 할 때 우리는 타이틀 화살표 뭔가를 말하고 싶지만합니다. 거기 아이디어의 같은 종류입니다. 자,이 기억한다. 코드를 우리는 또한이 자동 생성했다 또는 자동 생성 결과 활동, 이는 중간에있는 텍스트 뷰를 포함 그 안녕하세요 세계는 말한다. 우리는 가능성이 더 큰 만들 수 있습니다. 먼저 수행하자. 우리는 40 밀도 독립적 픽셀 만들 수 있습니다. 하자 거대한 슈퍼이야 참조하십시오. 괜찮아 될 것입니다. 그리고 우리의 코드 내에이 각각의 텍스트 뷰를 참조하기 위해 우리는 그것에게 ID를 부여해야합니다 우리가 말하는 수행하려면 @ 우리는 그것에게 ID를 할당 의미 + ID. 우리는 단지 @ ID를 말한다면 그것은 우리가 이미 존재하는 ID를 참조하는 것 같았 과의이 우리 resultTextView를 호출 할 수 있습니다. 그리고 XML에서 세미콜론 또는 아무것도 필요가 없다는 것을 알 수 있습니다. 모든 이러한 태그에 있습니다. 그것은 감​​각을 많이 HTML과 매우 유사하다. 그것은 익숙해의 조금 걸리지 만 결국 당신은 꽤 편안합니다. 의 우리의 결과를 텍스트 뷰의 텍스트를 업데이트 할 수 있도록, 그리고 우리는 우리의 다른 활동이 편집 텍스트 필드를 받고 때 우리가 그랬던 것처럼 MainActivity 여기에 우리는 것입니다 마찬가지로 - 우리는 ID로보기를 찾을 수 있습니다. R은, 경우에 내가 전에 이것을 언급하지 않았다, 우리의 자원 폴더에 대한 참조입니다 그리고 ID는 리소스 폴더에있는 모든 것을 모든 ID에 대한 참조입니다 및 resultTextView. 그리고 이전처럼 resultTextView는 객체 이것은 그것과 관련된 모든 속성을 가지고 의미합니다. 우리는이 텍스트 필드 나 텍스트 뷰의 편집 텍스트에 gettext에를 사용하는 경우 우리는 실제로 setText를 사용할 수 있습니다 그리고 우리는 이미 의도에서 메시지를 발견 그래서 메시지를 말할 수 있습니다, 이것은 실제로 메시지를 설정합니다. 그것은 시작하는 순간을 가지고, 그리고 우리는 그것이 충돌 여부를 확인할 수 있습니다 하지만 거기 그 과정에 대한 질문, 상호 작용의 종류? 여러 가지 방법이 간단합니다. 나는 비교적 간단한 일을 통해 갈거야 이유 당신이 레이아웃 사이의 상호 작용을 보게되므로 다시이며, 소스 코드를 어떻게 참조 것들 그리고 아마도 자바가 어떻게 작동하는지에 대한 약간의 노출을 얻을. 실제로 ohai처럼, 여기에 뭔가를 입력 한 경우, 나는 버튼을 클릭합니다 그것은 새로운 활동을 시작, 그 텍스트 뷰 ohai 말한다. 즉, 매우 간단하지만 잘하면 그 예 후 당신은 일종의 이러한 상호 작용이 어떻게 작동하는지 확인하고, 파일을 이제 엉망 모든 프로젝트 폴더의 왼쪽에, 잘하면 당신은 지금 어디 있는지 안다고. 이 소스 코드 영역입니다. 레이아웃은 정말 당신이 이미지를 포함 할 때까지 다룰 것이다 유일한 것입니다 그리고 drawables이든, 및 값, 즉, 문자열을 포함합니다 우리가 언급하고 스타일은 CSS와 같은 종류의 무언가이다. 당신이 원하는 때 그것을 해결하지만, 당신은 여분 천부적 재능을 추가 편안하게 느낄 때까지 응용 프로그램에 너무 많이 걱정할 필요가 없습니다. 단지 한 가지를 감싸는 당신은 확실히 포함 -하고 싶은 것 당신은 멋진 기능을 통합하고 자신에게 여분의 저장하려는 가정 코딩을 타사 라이브러리를 포함하는 것입니다. 여기에 셜록 홈즈 모자와 작은 안드로이드 사람이다. 이것은 작업 표시 줄 셜록 라이브러리 이는 기본적으로, 당신이 보았던 그 작업 표시 줄을 의미 이는 지금 아이스크림 샌드위치와 젤리 표준입니다 당신은 이전 버전에서 사용자에게 사용자 경험의 종류를 가지고하려는 경우 그리고 사용자가 탐색하는 것입니다 방법에 대해 걱정으로부터 자신을 저장 이전 버전에서 그 일이 없을 때 당신은이 라이브러리를 포함 할 수 있습니다 그리고 당신은 단지해야만 레퍼런스가 아닌 기본 안드로이드 작업 표시 줄에 대한 라이브러리,이 지원 라이브러리를 참조합니다. 당신은 게임을 포함하려고하는 경우 Scoreloop가 같은 것들, 그것은 중대하다. 그것은 당신이 게임에 리더 보드와 성과를 추가 할 수 있습니다. 몹이 응용 프로그램에 광고를 넣는 방법 경우에 당신은 돈 오프 조금 만들고 싶어. 물론, 페이스 북과 트위터가 통합에 대한이 당신은 등등, 쉽게 물건을 공유하고자합니다. 보관 마찬가지로, 구글 Analytics는 거기에 하나를보고하는 차트입니다. 당신은 실제로 상호 작용 누가 싶은 경우에 매우 중요합니다 귀하의 응용 프로그램 또는 그것이 그들이 어떻게 상호 작용하는지, 등등과. 구글은 기본적으로, 당신이 앱을 설치 한에 대한 통계를 많이 알 그들이 무엇을 전화, 어떤 운영 체제 버전들이있다. 하지만 당신은 매일 그것을 사용하고 그들이 어떻게 그것을 사용하는 사용자를 확인할하려는 경우 당신은 그런 추적 시스템의 일종을 포함 할 수 있습니다. 당신은 응용 프로그램을 배포 할 준비가되면 난 너무 깊이가에 갈 필요가 없습니다. 여기 링크를 클릭, 구글 재생합니다. 그것은 안드로이드 시장이 될하는 데 사용됩니다. 그들은 구글 플레이로 모든 브랜딩 이제 당신은에 제출. 그것은 매우 간단합니다. 당신은 설명, 약간의 스크린 샷을 포함해야합니다. 내가 말했듯이, IOS와 같은 어떤 승인 절차가 없습니다. 그리고 여기서부터 어디로? 나는 당신에게 정말 간단한 예를 보여 주었다. 그것은 정말 간단한데 희망하는 경우 그 다음은 아마 좋은 징조입니다. 당신은 모든에 내가 입력 한 정확히 대해 조금 혼란 또는 모르는 생각하면 그것도 괜찮아요, 그러나 여기에서 Google 가이드로 이동합니다. 이 시작하기 좋은 장소입니다. 그것은 응용 프로그램 디자인 측면에서 그들이 기대하는 것을 통해 당신을 말할 것이다 사용자는 일반적으로 그것과 어떻게 상호 작용합니다. 훨씬 더 자유 양식 이오스 이상이고, 내가 말하고 싶지만 테이블 뷰는-I를 알고하지 않는 것처럼 보인다, 그 자신의 빵과 버터입니다. 모든과를 아래로 슬라이딩 테이블 뷰입니다. 안드로이드 그들은 확실히 사람에서 보는 것을 권장합니다 다른 관점의 전체 무리. 이 ADT의 소프트웨어 개발 키트를 포함하는 경우 기본적으로 당신은 안드로이드 샘플 프로젝트의 전체 무리가있다. 여기, 안드로이드, 안드로이드 샘플 프로젝트. 나는 그 클릭하면, 나는 프로젝트에 적용되는 샘플되는 버전을 선택할 수 있습니다. 여러 가지의 전체 무리가 여기에 있습니다. 그것은 작업 표시 줄의 호환성을 시작한다 가속도계 재생, 백업 및 복원, 블루투스, 제스처 빌더. LunarLander이기 때문에 JetBoy, 그들은 당신에게 샘플 게임이다. 샘플 응용 프로그램의 전체 무리 여기있다 그리고 그들은 모두 안드로이드의 API의 다양한 측면을 대상으로하고 그리고 아이디어는 응용 프로그램을 만드는 등이다 당신은 안드로이드 응용 프로그램을 만들기 위해 안드로이드에 대한 모든 것을 배울 필요가 없습니다. 당신은 당신이 실제로 사용하려고하고있는 부분에 대해 배울 수있다. 이러한 샘플 라이브러리를 봐주세요. 복사 및 붙여 넣기 코드를하고 다시 적용 주시기 바랍니다. 그것은 더 어려운 코드를 볼 수있는 좋은 일이 그것을 이해하려고하는 물론 이유 CS50에 우리는 종종 당신에게 소스 코드의 많은 양의를 제공합니다. 당신은 유사한 라이브러리를 사용하려고하는 경우 이들 중 일부에 봐 그리고 자신의 코드에 적용됩니다. 물론, 튜토리얼이 있습니다. 자습서를 검색합니다. 나는 속도를 당신을 가져올 수있는 좋은 사람이 많이 온라인으로 찾을 어떤 조각이 정말 어떻게 당신이 그들을 사용할 수 있습니다로. 조각 같은 이러한 새로운 디자인 몇 가지, 당신을 만드는 경우가 아니라면 당신은 정말 걱정 할 필요가 없습니다 범위 프로젝트에서 꽤 큰. 그들은 구글 안으로 단계적으로 시도하는 것들 에 유래 물론 여러분의 친구입니다. 다행스럽게도 필자는 안드로이드에 당신에게 약간 판매 훨씬 더 쉽게 그냥 코딩 언어의 관점에서 접근의 실현. 자바는 내가 목표-C보다 훨씬 쉽게 이해할 수 말할 것이다. 안드로이드는 내가 더 IOS보다 생각 성장하고있다. 내 말은, 데이터가 내가 무슨 생각을 제외하고, 거기에 너무. 그것은 잠시 동안 주위에있을 것 그들은 자신의 설계주기의 관점에서 몇 년 뒤에 그래서 그들은 여전히​​ 이들 중 일부를 작업하는 것을 일종의 이해할 수 일관성 질문이 작업 표시 줄처럼, 여전히 그들에게 새로운 것입니다 모든 애플 리케이션에 걸쳐 유사한 사용자 경험을 만드는 종류. 희망 당신은 지금 앞으로 가서 이클립스를 열 수 있습니다 당신의 자신의 안드로이드 애플 리케이션을 확인하십시오. 우리가 아무것도 마무리하기 전에 사람이 어떤 질문이 있습니까? 나는 대답은 42입니다 당신을 알 수 있습니다. 글쎄, 사람, 행운을 코딩 행복. [CS50.TV]