FiLMiC Pro Tutorial: Shoot Video with iPhone and Android like a PRO!

-이 비디오에서 우리는 완전한 단계별로 보여주는 FiLMiC Pro 튜토리얼 DSLR과 유사한 설정 잠금 해제 방법 iPhone 또는 Android 스마트 폰 카메라에서 정확하게 사용하는 방법 프로처럼 동영상을 촬영할 수 있습니다 저기, Primal Video의 저스틴 브라운입니다

우리는 기업가와 비즈니스 소유자를 돕습니다 비디오로 비즈니스와 브랜드를 강화하십시오 네가 여기 새로운 사람이라면, 구독 버튼을 클릭하십시오 우리가 언급 한 모든 것에 대한 모든 연결 고리 이 비디오에서 당신은 아래의 설명 상자에 링크 된 찾을 수 있습니다 그래서 그것에 뛰어 들어 봅시다

FiLMiC Pro는 최고의 선택 중 하나입니다 최고의 iPhone 및 Android 카메라 앱 다양한 기능을 갖추고 있습니다 즉시 DSLR과 유사한 설정을 잠금 해제합니다 iOS 또는 Android 카메라에서 그래서 언뜻 보면 거기에 거대한 범위의 기능이 있습니다 그것은 확실히 압도적 일 수 있습니다

기본적인 이해와 간단한 과정만으로, 당신은 비디오를 촬영 놀라운 결과를 얻을 수 있습니다 귀하의 안드로이드 또는 귀하의 아이폰과 함께 이제 우리는 FiLMiC Pro 둘러보기를 조금만 마쳤습니다 그 이후로 큰 변화가있었습니다 그래서이 비디오에서 우리는 완전한 업데이트를 할 것입니다 우리는 필요한 모든 것을 다 커버 할거야

놀라운 결과를 얻기 시작하고 시작하기 최신 FiLMiC Pro 버전을 단계별로 제공합니다 그리고 당신이보고있는 동안, 의견에 대해 알려주십시오 당신의 최고의 카메라 설정은 무엇입니까? 당신은 당신의 아이폰이나 안드로이드에서하지 않고 할 수있는? 그리고 한번보세요 나머지 커뮤니티도 게시하고 있습니다 그 아래에 항상 금괴가 있기 때문에

추가 보너스로, 우리가 연습을 끝내면, 보너스 팁을 보여 드리겠습니다 촬영을 쉽게 모니터링 할 수있는 방법 휴대 전화의 리어 카메라로 촬영하는 동안, 그래서 너에게서 멀어지는 사람 이걸로 모든 것을 쉽게 할 수 있습니다 좋아, 이제 우리는 FiLMiC Pro에있다 자,이 인터페이스를 보면, 바로 박쥐에서, 당신은 오른쪽에 볼 수 있습니다, 우리는 오디오 바를 가지고 있습니다

따라서 볼륨을 얼마나 크게 볼 수 있습니까? 우리 녹음에 다가 가고 있습니다 또한 실제로 오디오가 들어오고 있다는 것을 알 수 있습니다 가지고있는 훌륭한 도구입니다 동영상을 만들려면 그 확신을 얻었습니다 오디오가 실제로 작동하는지 확인하십시오

먼저 인터페이스를 살펴 보겠습니다 정말 빨리 큰 레코드 버튼이 아래쪽에 있습니다 재생 버튼과 설정도 있습니다 여기에 배터리 표시등이 있습니다

저장 용량 표시기도 함께 표시되므로 둘 다 남았습니다 시간 코드 나 카운터가 있습니다 녹음하는 데 걸리는 시간을 보여줍니다 여기에 초당 현재 프레임이 있습니다 거기에 비디오 화질이 표시됩니다

그래서 당신은 현재 K에 대해 초당 25 프레임을 볼 수 있습니다 그 다음 하나, A 일부 고급 촬영 옵션입니다 그게 A가 의미하는 것이 아니라고 확신합니다 그러나 거기에서 당신은 정점 같은 것들을 얻을 것입니다, 다른 디스플레이를 얻을거야 촬영하는 동안 FiLMiC Pro에 오버레이 할 수 있습니다

좀 더 고급 컨트롤을 얻으려면 그 다음 하나, 둥근 원, 그것은 표적처럼 보입니다 집중력과 노출을 조절할 수있는 곳입니다 그것을 잠그고 모든 것을 수동으로 설정하십시오 그리고 세 가지 색상은 화이트 밸런스를 조정하는 것입니다

또는 샷의 색온도, 보실 수 있습니다 여기에 측면에 표시됩니다 현재 62,500 켈빈 지금 당장 여기있는 모든 것들 앱을 열 때와 똑같습니다 모든 것이 완전히 자동으로 설정됩니다 그래서 내가 권하고 싶은 첫 번째 일은 앱을 열 때 설정으로 이동하는 것입니다 모든 것이 올바르게 설정되었는지 확인하십시오

자 여기에 설정의 힙이 있습니다 그리고 우리는 분명히 그들 모두를 통과하지 않을 것입니다 하지만 나는 가장 중요한 것들을 다룰거야 당신이 설정할 수 있습니다 그래서 당신이 가야 할 첫 번째 장소는 프레임 속도입니다

그래서 우리가 그걸 두드리면 여기에서 볼 수 있습니다 우리는 초당 24 프레임, 25, 30 프레임을 가지고 있습니다 현재 해상도로 선택할 수있는 이 휴대 전화에 설정된 회색으로 표시된 옵션을 볼 수 있습니다 48, 50, 60, 120 및 240에 대해 자, 분명히, 우리가 해상도를 바꾸면, 녹음 품질, 그럼 우리도 통제 할 수있다 프레임 속도를 변경합니다

실제로 초당 30 프레임을 초과하는 것 실제로 슬로우 모션으로 분류 될 수 있습니다 따라서 제작할 대부분의 비디오의 경우, 이 세 가지 프레임 속도 중 하나를 사용하려고합니다 24, 25 또는 30이다 제작할 대부분의 동영상의 경우, 나는 초당 30 프레임을 고집한다고 말할 것입니다 당신이 미국에 있다면

호주 나 유럽에 있다면, 휴대 전화를 초당 25 프레임으로 설정하십시오 이것은 기회를 제거하거나 줄이는데 도움이 될 것입니다 어떤 빛이라도 깜박 거리는 것의 당신의 장면에 있습니다 그래서 저는 지금 호주에 있습니다 그래서 우리는 그것을 25로 설정할 것입니다

그리고 일단 당신이 그것을 선택하면, 화면 어디에서나 탭할 수 있습니다 이전 메뉴로 돌아갑니다 보아야 할 다음 설정은 해상도입니다 이것이 실제 품질입니다 당신이 찍을 파일의 상단에는 다양한 가로 세로 비율이 있습니다

또는 실제로 푸티지를자를 수 있습니다 그래서 정사각형이거나 검은 색 막대가 있습니다 더 많은 영화 스타일의 비디오를 제작하는 경우 그러나 기본값은 16 x 9이어야합니다 하지만 여기서 바꿀 세팅은 그것이 4K 2160p를 말하는 곳입니다 이제 분명히이 전화기로 4K를 지원합니다

그러나 우리는이 결의안을 변경할 수도 있습니다 우리는 3K, 2K, 1080p, 720p 및 540p 자, 이상적으로, 여기에 최소 1080p이지만 휴대 전화에서 지원하는 경우, 그러면 4K까지 올라갈 수 있습니다 분명히 당신에게 더 높은 품질의 비디오를 줄 것입니다 그러나 또한 더 많은 저장 공간을 씹을 수도 있습니다

우리가 두 마리의 새를 가지고있는 것처럼 들린다 백그라운드에서 그래서 당신의 해상도가 결정되면, 4K, 실제 비트 전송률 또는 품질을 선택할 수 있습니다 그 4K 녹음의 우리가 여기서 다시 돌아 가면 경제는 우리가 가지고있는 가장 낮은 품질의 환경입니다

그런 다음 표준 FiLMiC 품질, 극단적 인 FiLMiC 이제 FiLMiC 극한이 최고의 품질입니다 당신이 실제로이 응용 프로그램에서 얻을 수있는, 사실, 많은 경우에 당신에게 줄 것입니다 훨씬 좋은 화질의 비디오 휴대 전화에 기본 제공되는 카메라 앱보다 따라서 사용 가능한 저장 공간이 있다면 당신은 최고 품질의 녹음을 원합니다 휴대 전화의 카메라에서 그러면 당신은 FiLMiC 극단적 인 것을 사용하고 싶습니다

그래서 우리는 그 화면에서 다시 빠져 나올 것입니다 또한 여기에서는 오디오를 제어 할 수 있습니다 그리고 당신은 선택하게됩니다 카메라 마이크를 사용하려면, 또는 외부 마이크가 연결되어있는 경우, 그럼 당신은뿐만 아니라 외부 마이크를 선택할 수 있습니다 그리고 당신은 또한 품질에 대한 통제력을 가지고 있습니다

다시 한 번 오디오 녹음을 시작합니다 이걸 48 킬로 헤르쯔로 두는 것이 좋습니다 그러나 오디오없이 비디오를 레코딩하려면, 그 다음에 당신도 그것을 돌릴 수 있습니다 이걸로 돌아가 자, 앞면 카메라로 전환하고 싶다면, 너도 여기서 그걸 할 수있어

카메라 버튼은 당신을 위해 그것을 바꿀 것입니다 그리고 여기에 옵션도 있습니다 광학 이미지 안정화를 켜거나 끄기 또는 휴대 전화에 내장 된 경우 안정화 모든 설정을 잠근 경우 네가 좋아하는 방식, 실제로 프리셋으로 올 수 있습니다 여기에 프리셋을 저장할 수 있습니다

여기에서는 프리셋에서 볼 수 있습니다 JB 4K에 대한 사전 설정이 있습니다 그래서 그것은 모든 것이 준비된 나의 프리셋이 될 것입니다 4K 레코딩의 최고 품질 이것이 기본값이 될 것이기 때문에 대부분의 녹음에 사용할 예정입니다 따라서 프리셋을 저장할 수 있습니다

1080p, 4K 용으로 저장할 수 있습니다 그것은 정말로 당신이 달성하고자하는 것에 달려 있습니다 만들고있는 비디오로 그래서 우리는 여기서 다시 나가서 다시 여기서 빠져 나갈 것입니다 이제 설정을 완료 했으므로 녹음을 시작하기 전에 다음으로하고 싶은 일 실제 촬영을 설정하는 것입니다 화면에 사각형과 원이 있습니다

여기이 사각형은 실제로 가져올 수 있습니다 당신은 그것을 움직일 수 있습니다 이것은 당신의 초점 광장입니다 그래서 당신이 그것을 떨어 뜨리는 것에 집중할 것입니다 제가 지금 손을 화면 앞에두면, 내가 광장을 내 손에 떨어 뜨리면, 그것은 내 손에 초점을 맞추기 위해 초점을 바꿀 것입니다

이제 우리가 그 사각형을 실제로 누르면, 당신은 그것이 지금 붉어지는 것을 볼 수 있습니다, 내 손을 움직일 때, 그러면 그것은 변하지 않을 것입니다 그 시점에서 초점 포인트가 잠겨 있습니다 따라서 초점을 잠글 수있는 쉬운 방법입니다 그리고 원과 정확히 동일합니다 그래서 동그라미가 당신의 노출입니다

또는 귀하의 촬영 밝기 그래서 내가이 일을 계속하도록 내버려두면, 그에 따라 밝기를 조정할 것입니다 우리가 이걸 여기로 옮기면, 당신은 그것이 총격을 어둡게하는 것을 볼 수 있습니다 내가 다시 여기로 옮기면, 그러면 어디를 가든 조정할 것입니다 다시 탭하면 빨간색으로 보입니다

이제 노출과 초점에 고정되어 있습니다 그 시점에서 그래서 사물이 변하기 때문에, 그것은 자동으로 조정하지 않을거야, 정말 정말 강력합니다 전문적인 비디오 빛이 끊임없이 변하기를 원하지 않는다

카메라를 움직일 때 자동으로 조정됩니다 또는 장면에서 사물이 변할 때 그리고 분명히, 자동으로 돌아가고 싶다면, 그러면 원이나 사각형을 탭하기 만하면됩니다 모든 것이 정상으로 돌아갑니다 그래서이 경우 여기에서 우리가이 장면을 촬영한다면, 우리는 아마 우리의 초점을 잠그고 싶을 것이다

여기 의자에, 그래서 우리는 거기로 옮길거야 그 시점에서 화면을 잠그는 것이 좋습니다 그리고 정확히 같은 노출 그래서 우리는 여기서 의자를 드러 낼 수 있습니다 그래서 조금 더 밝게

일단 우리가 행복해지면 탭하십시오 이제 우리의 총은 그 설정에서 잠겨 있습니다 그래서 이것이 당신이 할 수있는 가장 기본적인 방법입니다 자, 실제로 그것들을 훨씬 더 잘 제어 할 수 있습니다 원이나 사각형을 길게 누를 수 있습니다

고급 옵션을 가져 오려면 또는 당신은이 표적으로 여기 아래쪽으로 내려올 수 있습니다 이 원 안에는 작은 원이 있습니다 우리가 그걸 두드리면, 우리는이 슬라이더를 양쪽에서 모두 볼 수 있습니다 이제 우리는 우리의 노출을 고정 시켰습니다 우리는 실제로 여기 건너 올 수 있습니다

이 슬라이더를 위아래로 스 와이프합니다 우리의 총을 밝게하고 어둡게하기 위해서, 실제로 전화를 걸어 우리가 겪어 온 모습을 봅니다 그리고 똑같은 초점 여기에 초점 슬라이더가 있습니다 수동으로 초점을 맞출 수 있습니다

내가 여기에 손을 넣으면, 내 손에 집중할 때까지 조정할 수 있습니다 그것을 놓아 버려라 그 시점에서 모든 것이 잠겨 있습니다 정말 정말 강력합니다 특히 이러한 컨트롤을 사용하려면 우리 스마트 폰에

마지막 키 설정은 여기에서 나는 또한 당신이뿐만 아니라 자물쇠를 권하고 싶습니다 그래서 우리는 초점을 다했습니다 우리는 노출 또는 밝기를 완료했습니다 그래서 그것들은 변하지 않을 것입니다 마지막 하나는 색온도입니다

수동 모드로 전환 할 수도 있습니다 그게 자동으로 바뀔 수있는 또 다른 문제 야 당신의 장면에서 사물이 변하기 때문에 그래서 구름이 오면, 틀림없이 전체 모양과 느낌을 바꿀 수 있습니다 동영상의 그래서 우리가이 세 개의 동그라미를 여기 아래쪽으로 두드리면, 그러면 여기에서 자동 조정을하는 것을 볼 수 있습니다

우리는 현재 자동 화이트 밸런스 AWB를 사용 중입니다 우리가 그것을 누르면, 우리는 화이트 밸런스에 고정되어 있음을 볼 수 있습니다 우리가 그 자동 읽기에 만족하면, 우리는 이제 그 시점에서 그것을 고정 시켰습니다 자, 분명히 여기에 통제 장치가 있습니다 그 표정을 바꾸기 위해서

우리는 다른 프리셋을 아래쪽에 가지고 있습니다 우리가 순환 할 수 있습니다 그리고 장면이 완전히 바뀌는 것을 볼 수 있습니다 이 프리셋 중 하나를 선택합니다 또한 A 및 B 사전 설정으로 여기에 자신을 저장할 수 있습니다

보려는 방식에 맞게 사용자 정의하십시오 하지만 제가 권장하는 것은 자동 화이트 밸런스입니다 왜냐하면 그것은 정상적으로 꽤 좋은 직업을하기 때문이야 장면이나 장면 분석하기 그 화이트 밸런스가 정확 해지면 그러나 당신은 그것이 당신에게주는 것을 볼 수 있습니다 색온도

현재 약 6,280 읽는 중입니다 그리고 그것은 약간 변동하고 있습니다 그게 자동 조정이야 우리가 이것을 잠그지 않았기 때문입니다 하지만 실제로이 슬라이더를 잡을 수 있습니다

직접 조정할 수 있습니다 그래서 우리가 더 시원한 발사가되고 싶다면, 우리는 그것을 내려 놓고 더 푸른 색을 더했습니다 우리가 샷에 더 많은 온기를 더하고 싶다면, 그러면 우리는 이것을 들어 올릴 것입니다 그리고 일단 당신이 그것을 원할 것 같은 곳에 대해 알게되면, 그 슬라이더를 놓아 둘 수 있습니다 화면을 누릅니다

그리고 당신의 총은 잠겨 있습니다 지금, 분명히,이 발사를 위해, 우리는 여기에 초점을 맞춰서 그것을 설정하고있었습니다 그래서 우리는 여기 화면을 다시 누를 수 있습니다 분명히 우리의 초점을 재조정합니다 다시 소파에

그래서 그것이 얼마나 단순한가입니다 그런 다음, 분명히, 당신이 기록하고 싶을 때해야 할 모든 것 녹음 버튼을 누르는 것입니다 아래 오른쪽 구석에서 아래로, 녹음 타이머가 카운트되고 있음을 볼 수 있습니다 이 앱에 대해 내가 정말로 좋아하는 것 당신이 모니터 할 수 있다는 사실 외에 녹음하는 동안 오디오 그것은 분명히 당신을 보여주는 것입니다 얼마나 많은 배터리가 남았 는가? 얼마나 많은 스토리지를 남겨 두었습니까? 그리고 분명히, 이것들이 우리의 전화이기 때문에, 이것들은 꽤 빨리 다 쓸 수있는 것들입니다

너무 쉽게 만들 수있는 것은 정말 멋진 일입니다 실제로 동영상을 녹화하는 동안 FiLMiC Pro에 대한 간단한 연습입니다 그리고 당신이 알아야 할 모든 설정 최고의 결과를 얻으려면 이제는 Android 기기에서 촬영되었습니다 설정과 모든 것은 완전히 동일합니다

iOS에서도 마찬가지입니다 그래서 그것은 완전한 연습입니다 너가 알 필요가있는 모두에 FiLMiC Pro를 사용하여 훌륭한 결과를 얻기 시작하는 방법 iPhone 또는 Android 기기에서 자, 만약 당신이 이런 비디오를 만들 수 있다면 당신이 카메라에 선물 할 곳 너 혼자서 쏴 버릴거야 그래서 너를 도울 사람이 없어 기본 카메라를 사용하려면, 스마트 폰의 주요 고품질 카메라, 그러면 다소 어려울 수 있습니다

화면이 너에게 멀어지기 때문이다 따라서 모니터하기가 어려울 것입니다 당신이 실제로 녹음하고있는 것, 모든 것이 당신이 원하는 방식으로 보인다 그리고 아무것도 변화가 없다고 실제로 레코딩하는 동안 촬영을 방해하게됩니다 그래서 당신이 이것을 할 수있는 몇 가지 방법이 있습니다

iPhone이 있거나 iOS 기기를 사용하는 경우, FiLMiC Remote라는 앱이있다 이것은 분명히 FiLMiC Pro에 직접 연결될 것입니다 그래서 당신이하는 일은 FiLMiC Remote를 설치하는 것입니다 추가 iOS 기기에서, 아마도 iPad 당신이 가지고있는 경우에는 두 번째 전화 나는 얼마나 많은 사람들이 두 개의 아이폰을 가지고 있는지 알지 못한다

하지만 어쩌면 당신 중 일부는 할 수 있습니다 두 번째 iOS 기기가 앱을 거기에 올려 놓습니다 당신은 무슨 일이 일어나고 있는지 볼 수 있습니다 해당 장치로 전화 화면을 미러링하십시오 또한 제어 할 수도 있습니다

따라서 원격으로 녹음을 시작할 수 있습니다 모든 것이 마음에 드는지 확인하십시오 이제 iOS 기기가없는 경우 또는 여러 개의 iOS 기기, 그러면 Reflector라는 소프트웨어를 사용할 수도 있습니다 그러면 휴대 전화 화면을 무선으로 모니터링 할 수 있습니다 iOS 또는 Android를 Mac 또는 PC 컴퓨터에 연결합니다

이제 우리는 그 과정을 통해 이야기하는 비디오를 가지고 있습니다 반사경 설치 방법 및 작동 원리 훨씬 더 자세하게 나는 그것을 카드에 넣을 것이다 그러나 그 비디오에서, 우리는 또한 당신을 위해 몇 가지 다른 옵션을 다뤘습니다 Reflector 또는 FiLMiC Pro Remote가 작동하지 않는 경우, 그 비디오를 체크 아웃했는지 확인하십시오

거기에 더 많은 옵션이 있기 때문입니다 이제 촬영 된 사진을 분류 했으므로 이제 iPhone 또는 Android 기기를 사용할 차례입니다 궁극의 비디오 제작 강국으로 화면에 링크 된 동영상을 확인하십시오 최고의 비디오 편집 앱 리뷰를보기 두 플랫폼에서 데스크톱과 같은 편집 기능을 제공 할 것입니다 스마트 장치에서 바로

그리고 곧 너를 보자

1 – Android Jetpack Navigation with Kotlin

안녕하세요, 모두 Martin Baraya입니다 오늘은 Android에 대해 배울 것입니다

제트 팩 내비게이션 먼저 제트 팩 내비게이션이란 무엇입니까? 한 화면에서 다른 곳으로 이동하는 것과 같이 앱 주변을 탐색하는 데 사용되는 제트 팩 내비게이션 또 다른 그것은 안드로이드 개발의 근본적인 부분이며 그것을하는 데 사용됩니다 하단 탐색과 같은 버튼을 클릭하는 것보다 더 복잡한 작업 제트 팩 내비게이션 작동 방식에 대해 3 가지 주요 사항을 더 이해합니다 네비게이션 구성 요소의 일부로 네비게이션 그래프, nav 호스트 조각과 탐색 컨트롤러 그래서 안드로이드 jetpack을 만들기 시작하자 안드로이드 스튜디오에서 탐색하고 안드로이드 문서 노트에 의존한다면 Android Studio에서 탐색을 사용하려면 Android Studio를 사용해야합니다 3 단계 이상의 3 단계부터 시작하자 그래서 우리는 비어있는 활동을 가진 새로운 프로젝트를 시작할 것입니다

제트 팩이나 뭐든간에 당신이 실제로 그것을 선택할 수있는 위치를 선택할 수 있습니다 바탕 화면에 jetpack이라는 빈 폴더가 있고 우리는 Kotlin으로 시작할 수 있습니다 완료 후에 API 레벨을 최소로 선택하고 gradle은 빌드하는데 약간의 시간이 걸릴 것입니다 처음부터 그래 슬레 빌드가 완료되었습니다 우리는 단편이 필요합니다

단편을 선택할 수 있습니다 우리는 그것을 주요 조각이라고 부를 수있는 뷰 모델을 가진 조각 Kotlin과 잘 맞았 어 그래서 그 후에 우리는 두 조각 더 필요합니다 그래서 우리는 빈 조각을 선택하려고합니다 이 두 상자의 선택을 취소하십시오

그냥 끝내 줘 우리는 두 번째 조각을 위해 똑같은 작업을 할 것입니다 공백, 두 번째 조각 끝 실제로 우리는 메인 프래그먼트의 주요 활동과 첫 번째 프래그먼트 및 두 번째 프래그먼트로 작업 할 수있다 조각하지만 우리는 주보기 모델을 사용하지 않을 것입니다 gradle 종속성을 가지고 있으므로이 두 줄의 코드를 추가 할 것입니다

nav 버전을 사용하면 지금 동기화를 선택할 것입니다 괜찮아 그러면 우리는 철판 최상위 레벨을 선택하고 allprojects 내부에서 이 버전의 코드 안드로이드 지원 버전을 추가하여 버전 28을 지원하십시오 지금 동기화 선택하기 그래서 지금 우리는 네비게이션 그래프를 만들 것입니다이 창을 닫으십시오 그래서 내부 자원과 레이아웃, 우리가 할 주요 활동 XML 파일 내부 그래프 작업, 먼저 텍스트보기를 삭제합니다

우리가 필요로하지 않기 때문에 우리는 서랍 레이아웃을 추가 할 것입니다 우리가 선택할 부모님은 부모님과 일치합니다 우리는 그것의 ID를 추가 할 수 있습니다, 우리는 컨테이너 이름을 이제 알았습니다 우리는 서랍 안쪽에 tage 조각을 추가 할 수 있습니다 형세 alt 키를 누르면 ID가 추가되고 nav 호스트이므로 Android 이름을 추가합니다

프래그먼트 호스팅을위한 프래그먼트 (fragment)와 우리는 제로 (dp)와 함께 너비와 하이를 할 수있다 그리고 제약 레이아웃을위한이 위치는 바로 지금이 것을위한 것입니다 우리가 선택할 수 있도록 리소스 폴더 안에 탐색 그래프 탐색을 생성합니다 새로운 Android 리소스 파일에서 리소스 유형 탐색을 선택해야합니다 nav_graph라는 이름을 짓고 ok를 누릅니다

그리고 그들의 디자인 부분에 가자 이 테이프에서 우리는 다음과 같은 주요 조각을 선택할 수 있습니다 우리는이 두 줄을 추가 할 수있는 조각 안의 주된 활동으로 되돌아 간다 기본 탐색 호스트의 코드 = true 및 탐색 그래프, 경로입니다 이것은 우리가 네비게이션과 네비게이션 그래프 안에서 만든 네비게이션 그래프입니다

주요 활동으로 전환해야합니다 주요 액티비티에는 서랍 레이아웃이 필요합니다 그래서 우리는 서랍 레이아웃을위한 변수를 만들 것입니다 그런 다음 Oncreate 메서드에서 조각을 찾기 위해 변수가 필요합니다 ID 그래서 우리는 그 이름을 지원하는 조각과 동등한 가치로 호스트 할 가치가있다

관리자가 ID로 조각을 찾으면이 ID입니다 nav 호스트 조각에 대한 이름과 형변환은 null을 받아 들일 수 있습니다 호스트에서 컨트롤러를 탐색하고 호스트에서 컨트롤러를 탐색 한 다음 네비게이션 바를 제어하고 우리가 그것을 연결해야하는 서랍 레이아웃 이 ID 컨테이너와 연결된이 drawerlayout ID this this 이제 우리는 탐색 UI를 사용하여 탐색 컨트롤러와 서랍을 연결합니다 작업 표시 줄, 설정 작업 표시 줄 탐색 컨트롤러 이것은 활동을 나타냅니다 이 변수에 대한 컨트롤러와이 변수에 대한 서랍을 탐색하면 ctrl 키를 눌러 덮어 쓰기 메소드를 만들겠습니다 이 방법과 우리는 사용자가 뒤로 버튼을 누른 다음 반환 값을 탐색 UI로 변경합니다

서랍,이 서랍을 탐색하고 해당 서랍의 활동 ID를 처리합니다 메인 프래그먼트 이제 탐색 그래프 탐색으로 전환합시다 먼저 조각 두 개를 추가하고 두 번째 조각을 추가합니다 두 번째 조각이므로 탐색 그래프에서 그래픽을 만들 수 있습니다 이 좋은 것을 사용하여 연결 액션, 위대한 생각에 대해 우리는 하나의 조각에서 연결할 수 있습니다 다른이 ID를 사용하여이 작업 ID를 사용하여 연결할 수있는이 작업 ID 한 조각에서 다른 조각으로 이제 주 프래그먼트 내부의 디자인 파트로 전환 해 보겠습니다

버튼이 두 개의 버튼 사이에 연결이 두 버튼을 사용하여 이제 우리가 할 주요 조각 안의 주요 조각으로 바꾸자 onView라는 create 메소드를 덮어 씁니다 그리고이 방법은 단편들 사이를 연결하는 데 사용되었고, 그런 다음 set onclicklistener와 같은 단편과 버튼을 연결하면 펀드를 사용합니다

버튼 ID 및 행동 ID가있는 내비게이션으로 ID별로보기 여기 네비게이션,이 쪽 우리는 이것을 바꿀 필요가있는 두 번째 버튼에 대해 동일한 작업을 수행 할 수 있습니다 button2를 클릭하면 액션 메인 프래그먼트 – 제 2 프래그먼트 그건 사실 우리가 거의 마지막에 끝났어 우리가 탐색 그래프를 살펴보고 메인 라벨의 라벨을 바꿀 거라고 생각해 원하는 집이나 원하는 물건과 첫 번째 조각, 두 번째 조각 텍스트 첫 부분을 바꿀거야 텍스트를 원하는대로 변경할 수 있으므로 첫 번째와 두 번째와 같이 만들 수 있습니다

조각 우리는 텍스트를 두 번째로 변경하려고합니다 첫 번째 및 두 번째 조각에 디자인 첫 번째 조각을 위해 우리는 같은 디자인을 추가 할 수 있습니다 두 번째 조각도 마찬가지입니다 텍스트 크기를 텍스트 스타일에 추가하기 만하면됩니다 이 물건이 이것과 그것 인 것 인이 재료 이제 우리는 android studio 에뮬레이터를 사용하여 테스트 할 것입니다

첫 번째 조각을 선택하면 첫 번째 조각이 첫 번째 조각으로 이동합니다 두 번째 조각은 두 번째 조각을 선택합니다 시청 해주셔서 감사합니다

Fun with ArrayMaps (Android Performance Patterns Season 3 ep1)

안드로이드 앱 최적화는 메모리를 관리하는 일이고 대부분 이쪽 문제는 메모리를 펑펑 써대는 컬렉션의 문제죠 콜트 맥안리스입니다 더 최적화된 앱을 쓰시게 하기 위해 안드로이드는 모바일 개발 용으로 자체 컬렉션을 제공합니다

널리 쓰이는 해시맵을 생각해 보세요 언어 면에서는 그만큼 유용한 것도 없습니다만 메모리 용량이 큰 프로그램이죠 보통의 해시맵 객체는 이런 구조입니다 키 객체를 가져다가 해시를 적용시키면 큰 배열의 인덱스가 나오죠 그 인덱스 값에 값 객체를 넣습니다 그러니까 여기서 걱정할 것은 충돌뿐입니다

서로 다른 키가 해시 값은 같아서 한곳에 값을 넣으려 하는 거요 작은 배열의 경우에는 해시 값 충돌이 더 잦습니다 20000개를 10군데에 넣으려 한다고 생각해 보세요 좀 지저분하겠습니다 그래서 대다수의 해시맵은 충돌 확률을 낮추기 위해 아주 큰 배열을 배정하는 것이죠

그리고는 다른 안전장치도 또 추가합니다 체이닝이라던가 등등 그런고로 이 큰 배열의 객체가 듬성듬성하다면 메모리를 아껴야 하는 기기가 보기에는 좀 그렇겠죠 그래서 안드로이드 런타임은 대체 컨테이너를 지원합니다 훨씬 메모리 효율적이죠

배열맵입니다 배열맵은 해시맵과 같은 기능을 제공하지만 큰 배열 하나 대신 작은 걸 두 개 이용해 해시맵의 오버헤드는 피합니다 첫 번째 배열은 주어진 키의 해시 값을 정렬된 상태로 저장합니다 두 번째 배열은 컬렉션에 포함된 키와 값 객체를 저장합니다 키 배열의 정렬 값을 따라서요

하나의 값을 불러오시려면, 그 키의 해시가 생성되어 그 값의 인덱스로 해시 배열에 이진 검색이 행해지고 그대로 한 쌍의 키 값을 찾게 되는 것입니다 두 번째 배열의 키가 검색 값하고 다르다면 그러면 충돌이 있었다는 증거입니다 이걸 해결하기 위해 키를 선형으로 순회합니다 원래의 매치를 찾으려고요 이 두 가지에서 얻을 점은 컨테이너의 객체 수가 늘어날수록 하나의 객체를 액세스하는데 필요한 시간도 늘어난다는 거죠

작은 메모리 오버헤드는 사라지나 대신 런타임의 액세스 비용은 늘어납니다 이 배열은 메모리에서 연속된 위치에 있으므로 사용 관련 주의사항에 대해서 말하자면 컨테이너에 추가와 삭제 과정을 이해하는 게 주안점입니다 삭제는 크게 두 경우가 있는데요 밀집화(compaction)만 하면 되는 운 좋은 경우가 있고요 삭제된 아이템은 끝으로 옮기고 나머지는 앞으로 보냅니다 가장 느린 방법을 이용해야 한다면 각 엘레멘트를 리사이징하고 카피해야 합니다

문제가 되는 값을 제거하기 위해서 말입니다 추가는 이 동전의 반대면인데요 배열이 밀집화되어 있다면 이미 할당되어 있으니 블록을 재활용하고 그냥 정렬 순서에 맞춰 좀 옮겨주기만 하면 됩니다 하지만 느린 방법의 경우에는 연속 배열을 완전히 리사이징해야 합니다 공간을 만들어야 하고 복사와 이동까지 해야 하니까요 이래서 배열맵에 추가하고 삭제하는 건 성능 상 비용이 조금 더 들어가는데요 하지만 속의 객체를 수백 단위 소규모로 유지하시면 별로 걱정하실 건 없습니다

연속 배열이 작다는 것은 값의 갯수가 적을 때 보통의 해시맵보다 비용이 훨씬 절약된다는 걸 뜻합니다 완전히 빈 맵이면 공간 차지하는 할당도 없고요 적은 수의 객체라면 이게 메모리 가성비 최강입니다 아, 그리고 이 컨테이너의 유용한 기능이 하나 더 있는데요 인덱스로 순회할 수 있습니다 해시맵 컨테이너하고 비교하면 해시맵은 반복자만 써야 합니다

느리고 메모리도 더 많이 드는 방법이죠 하지만 이 컨테이너의 사용은 상황에 맞춰서 하는 게 좋습니다 사용에 적합한 환경은 첫째, 아이템 수는 적지만 액세스는 자주 일어난다던지 추가와 삭제가 드물어서 그 오버헤드는 무시할 수 있거나 둘째, 맵의 컨테이너를 쓰고 있을 때입니다 맵의 맵 같은 게 나오죠 하부로 갈수록 서브맵은 담은 아이템의 수가 적어집니다

자주 순회하게 되고요 저 두 케이스가 아니라면 그냥 해시맵을 쓰는 게 낫습니다 이게 재밌는 부분인데요 최적화라는 건 메모리 상황에 맞춰 맞는 컨테이너를 맞게 쓰는 작업이거든요 누가 말했듯이 이 괴물을 단칼에 잡을 묘책은 없습니다 그런고로 이상의 정보는 안드로이드 퍼포먼스 패턴P에서 최적화의 균형을 잡는 법을 알아봅시다 저희 구글+도 잊지 마시고요

다른 개발자분들은 이 상황에서 어떻게 하셨나 들어보세요 그럼 항상 침착하게, 코드는 단정하게 실행은 효율적으로! 잊지마세요

Everything Wrong With Android, Explained

(듣기 쉬운 음악) – Android가 가장 인기있는 스마트 폰입니다 운영 체제

그것은 모든 스마트 폰의 80 % 이상에서 실행됩니다 한 달에 20 억 명이 그것을 사용하고 있습니다 하지만 10 년이 지난 후에도 Android는 여전히 가득차 있습니다 근본적인 결함들 세계 수준의 경험에서 당신을 지켜줍니다 내 가장 큰 쇠고기에 대해 이야기 해 봅시다

Android 휴대 전화, 소프트웨어 업데이트 안드로이드 전화 제조사는 정말 나쁘다 휴대 전화를 최신 상태로 유지하는 방법 Google의 최신 Android 버전이 있습니다 이것에 대한 많은 이유가 있습니다 고글이 Android의 새 버전을 만들 때 그것을 수정하는 전화 회사에 보낸다

자체 장치 용 그런 다음에는 많은 테스트를 거쳐야합니다 그들이 더 많은 테스트를 위해 통신 사업자에게 그것을 보내기 전에 소프트웨어 업데이트가 마침내 휴대 전화에 닿기 전까지 달이 지나고 고글이 보통있다 그때까지 안드로이드의 새로운 버전

약 1 년 정도 지나면 인센티브가 거의 없습니다 전화 회사가 계속 업데이트를 사용자의 휴대 전화로 전송할 수 있습니다 그들은 이미 멀리 떨어져있어 당신은 준비가되어있을거야 어쨌든 실행중인 새 장치 용 새로운 Android 버전입니다 그 결과 스마트 폰의 94 %가 그곳에 있습니다

Android의 오래된 버전을 실행 중입니다 예외, 고글의 픽셀 휴대 전화 출시되는 즉시 Android 업데이트를 받으십시오 수년에 걸쳐 많은 약속에도 불구하고 고글은 모든 기기를 보장하기 위해 아무 것도하지 않았습니다 시기 적절한 업데이트를 얻으십시오 스킨과 bloatware도 큰 문제입니다

Android 휴대 전화 제조 업체가 들어 오기를 좋아합니다 안드로이드의 기본 버전 사용자 인터페이스에 다른 디자인 추가하기 자신의 앱을 넣고 웹 브라우징, 전자 메일 및 캘린더와 같은 기본 기능 새로운 Android 휴대 전화를 열면 이는 실제로 필요한 앱을 두 배로 늘렸다는 것을 의미합니다 2 개의 전자 메일 응용 프로그램, 2 개의 달력 응용 프로그램, 2 개의 웹 브라우저, 그것은 많은 사람들에게 혼란스러운 경험입니다 그 사이에 그들의 가죽은 거의 항상 더 나쁘다

안드로이드의 소위 깨끗한 버전보다 통신 사업자가 개입하면 상황은 더욱 악화됩니다 여기 미국의 이동 통신사 자신의 앱과 bloatware 추가하기 안드로이드 운영 체제에 해당 앱을 삭제할 수 없습니다 당신은 그들을 숨길 수 있습니다 하지만 그들은 여전히 ​​당신의 휴대폰에 살고 있습니다

이 모든 것이 나쁜 경험으로 이어집니다 전반적인 성능을 저하시킬 수 있습니다 iOS와 iPhone을 비교해보십시오 간소화 된 경험 bloatware가없는 모든 기기에서 사용할 수 있습니다 그렇다면 기술 지원이 있습니다

Android 휴대 전화가 고장 났을 때 당신은 무엇을합니까? 또는 문제가 있습니다 삼성 스토어로 도망 칠 수있는 것은 아닙니다 또는 LG 스토어, 갈 곳이 없습니다 이동 통신사를 제외하고 그리고 이동 통신사는 최고의 평판을 가지고 있지 않습니다

언제 당신의 전화를 서비스에 온다 Android는 보안 악몽이 될 수도 있습니다 너무 많은 다른 버전이 있기 때문에 거기 안드로이드와 전화 회사의 안드로이드 시기 적절하게 업데이트하는 데 어려움을 겪습니다 취약점이 발견 된 경우와 때 패치를 업데이트하는 데 영원히 걸릴 수 있습니다 가장 좋은 예는 Stagefright입니다

몇 년 전에 발견 된 심각한 취약점 사실상 모든 안드로이드 장치에서 중요한 제조자는 헝겊 조각을 끄기 위하여 돌진했습니다 버그를 고치기 위해 우리는 아직도 모른다 그들 모두가 패치를 받으면 오늘날 대부분의 안드로이드 폰은 Stagefright로부터 안전 할 수 있습니다 그러나 다음 주요 결함이 업데이트를 즉시 얻을 수 있음을 발견했습니다

마지막으로 프라이버시가 있습니다 Android 휴대 전화는 기본적으로 고글 서비스를 실행합니다 그리고 고글은 여전히 ​​대부분의 돈을 벌고있다 개인 정보를 추적하고 광고를 귀하에게 타겟팅 할 수 있습니다 Android 휴대 전화는 거의 선택의 여지가 없습니다

이 문제를 해결하기 위해 Google 앱을 사용하는 경우에도 동일한 문제가 발생합니다 물론 당신의 아이폰에,하지만 문제는, iPhone은 기본적으로 해당 앱과 함께 제공되지 않습니다 당신은 그들을 사용할 필요가 없습니다 이것의 어느 것도 안드로이드가 나쁘다는 것을 의미하지 않는다

사람들은 여전히 ​​Android와 Android가 여전히 눈에니다 알림 및 동기화 기능 개선 귀하의 Google 서비스와 하지만 안드로이드의 10 년 만에 이러한 문제는 지금까지 해결되었을 것입니다 (박수) (스냅) 시원한

Level Up with Data Binding (Android Dev Summit '18)

[음악 재생] DAN GALPIN : 데이터 바인딩으로 레벨 업 2015 년에 데이터 바인딩이 도입되었을 때 – 그리고 나는 아무것도 읽을 수 없으므로 여기서부터 할 것입니다 – 내 반응이 꽤 컸어

우리가 뭘 했니? XML 값 내부의 표현과 마찬가지로 이것은 일종의 견해입니다 그러나, 결과적으로 데이터 바인딩은 매우 멋지다 그리고 나는 단지 내 이해를 높이기 만하면되었다 그리고 내가 데이터 바인딩에 대해 좋아하는 한가지 실제로 얼마나 많이 사용하고 싶은지 선택할 수 있습니다 따라서 초급 단계에서 즉각적인 이점을 얻을 수 있습니다

FindViewById를 피하는 것과 같습니다 그러나 그것은 시작입니다 중간 수준에서, 당신은 실제로 사용자 지정 바인딩 어댑터 같은 것을 얻으십시오 그리고 관측 가능성, 전문가 수준에서, 실제로 양방향 데이터 바인딩이 있습니다 또한이 방법을 사용하면 관찰 가능성을 적용 할 수 있습니다

데이터에서 UI까지뿐만 아니라 UI에서 데이터까지 먼저, FindViewById를 없애자 [건배] 정확하게 먼저 데이터 바인딩을 활성화해야합니다 이제이 작업을 수행하기 만하면됩니다

설정 데이터 바인딩 활성화는 귀하의 Gradle 파일에서 true와 동일합니다 그리고 나서이 작은 레이아웃을 넣어야합니다 파일 주위의 래퍼 Android Studio에서 실제로 그렇게 할 수 있습니다 작은 전구에서 당겨서 자동으로 지금 당장 아이콘을 클릭하고 데이터 바인딩 레이아웃으로 변환합니다

꽤 멋지다 이제 바인딩은 실제로이 객체입니다 당신은 데이터 바인딩 유틸리티를 사용하여 레이아웃을 부 풀리게됩니다 그리고 속성과 청취자를 설정하기 만하면됩니다 이거 꽤 멋지네

하지만 솔직히 말해서 당신이 실제로이기 때문에 이것을 사용하십시오 실제 데이터 바인딩을 사용하려고합니다 이제 표현식을 바인딩하는 것에 대해 이야기 해 봅시다 그리고이를 위해 우리는 실제로 레이아웃에 데이터를 사용할 수 있도록해야한다 레이아웃의이 데이터 섹션에서 변수를 선언합니다

그리고 레이아웃 XML 속성에서 표현식을 사용할 수 있습니다 실제로 해당 데이터를 뷰에 연결합니다 이제 표현식은 실제로 중괄호로 묶입니다 @ 접두어가 붙습니다 다음은 데이터 바인딩 표현식의 몇 가지 예입니다

다시 말하지만,이 첫 번째 텍스트 속성을 할당합니다 뷰 모델 속성에 추가합니다 두 번째 예제에서는 맞춤 속성 (높이 0)을 사용하고 있습니다 그리고 세 번째 것에서 우리는 실제로 텍스트보기를 지나가는 람다 사용하기 같은 전화 그리고이 네 번째 것에서 우리는 실제로 텍스트 속성과 같이 호출하는 람다 사용 우리의 레이아웃에 다른 관점의

따라서 실제로 다른 뷰를 참조 할 수 있습니다 그것들을 통과 시켜라 그것은 꽤 근사하다 이제 ViewModel 엔진에 대한 데이터 바인딩 액세스를 제공하기 위해, 우리는 이처럼 바인딩 객체를 설정합니다 레이아웃을 부 풀린 후

매우 간단합니다 그리고 이제 뷰 모델을 해당 레이아웃에서 사용할 수 있습니다 그러나 진정한 질문은 이것이 모두 어떻게 작동할까요? 그리고 대답은 물론입니다 데이터 바인딩에는 마술이 없습니다 그러나 마술처럼 보입니다

우리가 내장 된 바인딩 어댑터가 있기 때문입니다 거의 모든 것을 다뤄 라 따라서 프레임 워크에 대한 모든 호출을 데이터 바인딩으로 바인딩 어댑터에서 실제로 만들어집니다 마법은 없습니다 실제로 코딩을 볼 수 있습니다

디버거를 사용하십시오 그것을 탐색 할 수 있습니다 메서드의 첫 번째 줄은 필요한 경우 변경 사항을 확인하여 UI 만 업데이트합니다 마지막 줄은 실제로 우리가 찾고있는 텍스트입니다 그리고 데이터 바인딩으로 제공되는 많은 어댑터가 있습니다

또한 지능적이고 일관되게 작동합니다 이러한 모든 관점에서 이제 이러한 소스 파일을 살펴보십시오 나만의 풍습을 짓는 데 도움이 될 것입니다 바인딩 어댑터 일이 흥미 로워지기 시작합니다 이제 어댑터 바인딩 101에 대해 살펴 보겠습니다

@BindingAdapter로 주석 된 어댑터 하나 이상의 속성 이름을 취합니다 어댑터 메소드는 뷰를 첫 번째 매개 변수로 사용합니다 뷰의 하위 클래스를 사용하여 제한합니다 특정보기 유형으로 추가 매개 변수는 다음과 같습니다 바인딩 표현식의 데이터면과 일치합니다

어댑터는 데이터 유형별로 다를 수 있습니다 어댑터를 사용하여 동작을 재정의 할 수도 있습니다 내장 속성의 경우 이제 모든 이미지 사용로드 소스 매개 변수가 설정된 활공을 사용합니다 하지만 이걸 조심해야 해 이것이 모듈 글로벌이기 때문입니다 그래서 정말 멋진 부작용이있을 수 있습니다

이것에 대해 당신은 기대하지 않을 것입니다 우리는 또한 많은 것들을 할 수 있습니다 고급 바인딩 어댑터 때로는 그 오래된 가치가 정말로 중요합니다 색상 변경 리스너와 같이

따라서 동일한 매개 변수 유형을 사용하는 경우 행의 두 매개 변수에 대해 바인딩 컴파일러는 실제로 이전 값을 첫 번째 값으로 전달했습니다 업데이트 된 것이 뒤 따른다 또한 여러 속성을 사용할 수도 있습니다 이 이미지보기 에서처럼 멋지다 따라서 실제로 여러 속성을 정의 할 수 있습니다

바인딩 어댑터를 선언 할 때 그리고 나서 그것들은 모두 여러분의 코드에서 사용할 수 있습니다 실제로, 당신이 그것을보고있는 것처럼 이제 관측 가능성도 꽤 좋습니다 실제로 LiveData를 사용하여 자동으로 수행 할 수 있습니다

관측 그래서 이것은 꽤 멋지다 우리는 사실 여기에 불변 클래스를 노출하고 있습니다 이것의 예와 함께 그리고 뒷받침 필드는 변경 가능하거나 조정자가 될 수 있습니다

LiveData 그런 다음 LiveData를 노출합니다 Kotlin getters 공격을 사용합니다 그런 다음 한 가지 추가 변경 작업을 수행해야합니다 실제로 라이프 사이클 소유자를 설정해야합니다

따라서 뷰 모델에서 LiveData를 관찰 할 수 있습니다 정확한 범위로 괜찮아 마지막으로, 양방향 데이터 바인딩 솔직히 이건 정말 사소한 일입니다 실제로 LiveData를 사용할 때

이제 단방향 데이터 바인딩을 두 가지 방법으로 사용할 수 있습니다 이 확인란의 예와 같습니다 하지만 실제로 양방향 데이터 바인딩으로이를 호출 할 수 있습니다 @ =를 사용하여 그리고 가장 중요한 부분은 LiveData를 실제로 관찰 할 수 있다는 것입니다

따라서이 경우에는 불변의 LiveData를 노출하는 것이 좋습니다 그것은 우리의 견해에 의해 수정 될 것이기 때문입니다 그런 다음 라이프 사이클 소유자를 설정하고 @ = 확인란의 표기법 이것이 양방향 데이터 바인딩입니다 어쨌든 그렇게 전문적이지는 않습니다

자세한 내용을 보려면 데이터를 확인하십시오 바인딩 코드 랩 및 설명서 on AndroidAndroidcom [음악 재생]

Getting Started with Firebase Notifications on Android – Firecasts

안녕하세요? 저는 Firebase팀 로렌스 모니입니다 또 다른 Firecast 에피소드를 시작해 보겠습니다

오늘은 안드로이드의 Firebase Notifications을 사용해서 어떻게 사용자들에게 알림 메시지를 보내는지 알아 보겠습니다 그리고 직접 이 기능을 사용해 봅니다 불과 몇 분이면 되지요 무엇부터 시작할까요? 우선 개발 환경이 제대로 설정됐는지 확인해 보세요 Firebase Notifications를 시작하는 것은 쉬워도 너무 쉬워요

코드를 전혀 작성할 필요가 없어요 Firebase Messageing API를 앱에 넣기만 하면 나머지는 Firebase가 알아서 하죠 buildgradle dependencies에 한 줄만 추가하세요 그럼 앱에서 알림 기능이 백그라운드에서 작동합니다

서버나 그런 것이 전혀 필요 없어요 Firebase 콘솔만 사용하면 됩니다 개발 환경만 갖춰져 있다면 알림을 즉시 보낼 수 있고 앱의 시스템 트레이에 알림이 뜨지요 그러나 앱을 띄운 상태에서 알림을 사용하려면 약간의 코드를 작성해야 합니다 이것은 다음 편에서 다루겠습니다

앱이 Firebase 프로젝트와 연결되도록 하세요 연결되면 Overview 화면에 나타나죠 그럼 Notification 섹션으로 가세요 메시지를 보낸 적이 없다면 이렇게 나옵니다 메시지를 보내려면 버튼을 누르세요

그러면 메시지 작성 페이지로 가는데 여기서 메시지와 수신자를 지정할 수 있어요 제목을 my first message 라 하죠 수신인으로는 User segment를 선택하고 이 앱을 쓰는 사람들로 하겠습니다 이제 메시지를 발송할 수가 있습니다 메시지가 왔는지 폰을 열어 봅시다

폰에서는 앱이 백그라운드에 있네요 스크린이 잠겨 있기 때문이지요 하지만 알림 메시지가 보입니다 알림을 터치하면 앱이 활성화됩니다 홈 버튼을 눌렀다면 여전히 백그라운드에 있겠지요

Firebase Notifications으로 알림을 받고 앱을 띄우는 건 쉽습니다 앱이 포그라운드에 있을 때도 가능해요 이 내용은 다음 번 스크린캐스트로 넘기죠 Firebase 콘솔로 어떻게 알림 메시지를 보내는 지 보셨습다 앱은 메시지를 받고 출력해 줍니다

괜찮죠? 여기까지입니다 질문은 아래 댓글로 남겨 주세요 트위터나 G+에서는 #AskFirebase로 만나요 구독 단추 누르는 것 잊지 마시고요 저는 로렌스 모니입니다

시청해 주셔서 감사합니다

Device provisioning and authentication with Android Things (Google I/O '18)

[음악 재생] DARREN KRAHN : 우리 이야기에 오신 것을 환영합니다 오늘 장치 프로비저닝 및 인증에 대해 Android 관련 콘텐츠

내 이름은 대런이야 저는 소프트웨어 엔지니어입니다 그리고 안드로이드에 대한 보안 작업도합니다 WAYNE PIEKARSKI : 멋지다 그래서 저는 Wayne Piekarski입니다

저는 Android Things와 IoT에 대한 개발자 옹호자입니다 그리고 오늘 우리의 대화에와 주셔서 감사합니다 그리고 오늘, 우리는 당신에게 전략에 대해 이야기 할 것입니다 귀하의 IoT 장치를 인터넷에 연결하는 방법, 클라우드 및 기타 모든 것 그래서 우리는 모든 과정을 끝까지 마칠 것입니다

그리고 우리는 Google 소프트웨어가 어떻게 Android Things, Firebase 및 Cloud IoT와 같은 플랫폼 핵심,이 작업을 훨씬 쉽게 할 수 있습니다 그래서 많은 사람들이 알고있을 것입니다 그리고 그게 바로 당신이 오늘 여기 온 이유입니다 그리고 그것은 우리가 이전에 본 것보다 더 커질 것입니다 그래서 우리가 전화를 본 것과 똑같은 방식으로 PC보다 더 큰, 나는 우리가 가고 있다고 생각한다

IoT 디바이스가 그보다 훨씬 큰 수주를보고 있습니다 우리는 IoT 장치들로 둘러싸여있을 것입니다 온갖 일을하는 매일 매일 우리를위한 다양한 업무가 있습니다 그리고 단지 하나의 장치가 될 수는 없습니다 당신은 수십 또는 수백 가지를 가지려고합니다

모든 종류의 흥미로운 일을하고 있습니다 오늘은 아이디어에 대한 몇 가지 힌트를 드리겠습니다 이러한 종류의 IoT 디바이스를 가장 효과적으로 구축하는 방법에 대해 연결 방법, 보안 방법 등을 설명합니다 먼저 Android Things의 기본 사항을 살펴 보겠습니다 바라건대, 대부분의 사람들이 소개 토크를 보았습니다

그렇지 않다면, 우리는 많은 회담을 갖고 있습니다 여기 안드로이드가 무엇인지 커버하는 IO에서 하지만 안드로이드 것들의 핵심 개념 모듈에있는 시스템을 기반으로한다는 것입니다 그 위에 이미지에 표시됩니다 작은 작은 보드입니다

SOM에는 CPU, Wi-Fi, 메모리가 포함되어 있습니다 보드 지원 패키지라고 부르는 것에 의해 지원됩니다 그리고 이것은 드라이버, 커널, 라이브러리, 그리고 모든 것 또한 Google의 업데이트 및 보안 기능도 제공합니다 Android Thing SOM을 사용하여 개발자가 IoT 장치를 쉽게 만들 수 있습니다

보안을 유지하는 데 도움이됩니다 최신 상태로 유지되는 이유는 소비자가 지금 필요로하는 것들이다 그들의 장치와 Android Things를 고유하게 만드는 또 하나의 기능 정말 강력한 유형을 지원한다는 것입니다 장치에서 처리 중입니다

따라서 클라우드에서 일할 필요가 없습니다 하지만 당신은 비디오 및 오디오 처리를 할 수 있습니다, 당신은 기계 학습을 할 수 있고, 모든 것을 할 수 있습니다 전화 수준의 CPU 성능을 갖추고 있기 때문에 이 Android Things SOMs 다른 하나는 Android를 기반으로한다는 것입니다 따라서 모든 친숙한 개발자 도구를 사용할 수 있습니다

당신이 익숙한 Android Studio 및 모든 Android 개발자 인 경우 보유하고있는 기존 코드입니다 Android를 사용하면 집에서 바로 즐길 수 있습니다 이전에 Android 개발을 완료했다면 IO에서 다른 많은 대화가 있습니다 그것에 대해 자세히 알기 위해 갈 수 있습니다 하지만 오늘 우리가 집중해야 할 것은 우리가이 모든 것을 어떻게 활용할 수 있느냐입니다

Android 기기와 함께 제공되는 IoT 기기를 더 쉽게 만들 수 있습니다 그리고 당신을 위해 더 잘 그래서이를 염두에두고 예제를 살펴 보겠습니다 이 강연을 통해 우리가 사용할 내용 우리가 무슨 말을하고 있는지 설명해 주려고 그래서 우리는 IoT 세척을 할 것입니다

왜 안되니? 그리고 모두가 기계 학습을 사용하게되어 기쁩니다 및 TensorFlow 그래서 세탁기를 사용해야합니다 기계 학습을 온보드합니다 빨래를 보는 카메라가 있어야합니다

그리고 옷을 빨고있는 동안, 기계 학습 알고리즘을 수행합니다 그것이 얼마나 깨끗한 지 분석합니다 그리고 세탁물이 어떻게 보이는지 볼 수 있습니다 일할 때 씻겨서 이런 일이 일어나는 것을 보는 데 관심이 있습니다 그래서 우리는 우리의 신제품 "TensorWash"를 부를 수 있다고 생각합니다

그래서 우리가이 "TensorWash"세탁기를 만들 때, 대부분의 세탁기에는 전면에 제어판이 있습니다 여전히 수동으로 제어하기를 원하기 때문입니다 이제 Android Things가 지원하기 때문에 정말 강력한 기기라면 앞면에 스크린이있다 OpenGL을 실행할 수 있습니다 비디오와 오디오를 재생할 수 있습니다

그게 당신이 만들 수있는 하나의 선택입니다 기계의 호화로운 모델입니다 그러나 비용을 줄이려면 저렴한 IoT 세탁기를 만들기 위해, 그러면 디스플레이를 없애기를 원할 것입니다 그래서 우리는이 예제를 위해 이것을 남겨 둘 것입니다 그래서 머신은 IoT가 가능해질 것입니다

정면에 몇 개의 버튼이 있습니다 하지만 거의 모든 일이 진행되고 있습니다 우리는 전화를 통해 통제 할 수 있습니다 얘기 좀하려고합니다 그래서이 기계의 진정한 마법 그것이 인터넷에 연결되었을 때입니다

따라서 원격으로 장비를 모니터링 할 수 있습니다 카메라가 보는 것을 볼 수 있습니다 다음과 같은 경우 세탁주기를 시작할 수 있습니다 집에서 운전할 때, 직장에있을 때 그래서 사용자는 집에 없으며 그들은 잠재적으로 세계 어느 곳에 나있을 수 있습니다

그래서 우리는 그것을 단지 존재로 제한하고 싶지 않습니다 집안에있는 것이 가까운 곳에서 통제됩니다 따라서 우리는 인터넷 클라우드 기반 연결이 정말로 필요합니다 그 뒤에 어떤 종류의 클라우드 솔루션이 있습니다 그리고 모든 종류의 재미있는 기능을 추가 할 수 있습니다

클라우드를 지원함으로써 그래서 우리는 점수를받을 수 있습니다 옷을 씻지 않거나 물을 너무 많이 낭비하지 않기 때문입니다 서비스 부서에 결함을보고 할 수 있습니다 그리고이 모든 것을 지원하기 위해서, 기계는 Wi-Fi를 필요로합니다 그리고 우리는 단지 막힘으로 속일 것입니다

그것으로 이더넷 케이블에 그래서 우리는이 세탁기를 가지고 있습니다 우리는 클라우드에 연결할 필요가 있습니다 그리고 우리는 클라우드와 상태를 공유해야합니다 전화가 장치를 제어 할 수 있도록 따라서 가능한 많은 클라우드 서비스가 있습니다

우리는 오늘 그들 중 몇 사람에 대해 이야기 할 것입니다 그러나 첫째로, 이런 종류의 일을하기 위해서, 먼저 네트워크에 장치를 가져와야합니다 요즘 많은 기기들이 Wi-Fi를 기반으로하고 있습니다 장치에는 SSID와 암호가 필요합니다 네트워크에 가입하십시오

많은 장치에는 키보드 또는 디스플레이가 없습니다 우리 세탁기의 경우처럼, 그래서 모든 것이 전화로 처리되어야합니다 그리고 우리가 전화를 사용한다면, 그 장치는 Wi-Fi 액세스 포인트를 자체적으로 구동해야합니다 전화가 연결됩니다 모든 로그인 [INAUDIBLE]을 보냅니다

그런 다음 장치가 네트워크에 다시 연결됩니다 그 정보를 사용합니다 어떤 이유로 든 잘못 될 경우, 전화는 무슨 일이 일어 났는지 알 수있는 방법이 없습니다 그래서 매우 섬세한 과정입니다 따라서 일부 전화기 또는 Wi-Fi 네트워크에서는 문제가 될 수 있습니다

그리고 많은 개발자들이이 도전이 올바른 것으로 생각합니다 그래서 우리는 몇 가지 힌트를 통해 이걸 더 좋게 만들려고 다음으로, 장치는 장치 소유자는 누구인가? 그래서 당신은 장치가 보이는지 확인하고 싶습니다 장치 소유자와 다른 사람 만 제어 할 수 있습니다 그들이 신뢰하는 것

그래서 우리는 어떤 종류의 인증 토큰이 필요합니다 서버에서 발급 받아야하는 그런 다음 사용자가이 토큰을 제어하는 ​​데 사용합니다 우리는 그것을 장치에 두었습니다 그런 다음 기기가 연락하기 위해 사용하는 것입니다 인터넷과 구름

사용자 팩토리가 장치를 재설정하면, 우리는이 토큰과 그 밖의 모든 것을 잊을 필요가 있습니다 그런 다음 기기가 자체적으로 재설정되어야합니다 다른 사용자가 기계를 사용할 수 있도록 이전의 역사는 보존되어 있지 않습니다 이제는 우리의 "TensorWash"가 모두 연결되어 갈 준비가되었습니다 따라서 전화, 장치 및 클라우드가 모두 통신 할 때, HTTPS와 같은 TLS 연결을 통해이를 수행합니다

그렇게 안전하다는 것은 매우 중요합니다 우리는 도청을 중앙에두고 싶지 않습니다 일반적으로 Google 서비스에는 요즘 HTTPS가 필요합니다 그리고 우리는 실제로 이것을 기본적으로 시행하기 시작했습니다 그래서 우리는 당신을 위해 더 힘들게 만들고 있습니다

모든 보안 때문에 암호화되지 않은 연결을 사용하는 방법 의미 그리고 이런 장치를 만들 때, 모든 사람들이 적절하게 보안을 유지합니다 작은 IoT 회사들조차도 정말 간단한 장난감이나 뭐든간에, 왜냐하면 모두가 항상 자신의 장치가 문제가되지 않을 것이라고 생각합니다 작은 문제조차도 예상치 못한 영향을 미칠 수 있습니다 너는 나중에 꿈도 꾸지 않았다고 기기가 전 세계에 출시되면 그게 전부입니다

그것은 당신이 무엇을 할 수 있는지에 대한 핵심 개념입니다 우리가 만들고있는 세탁기를 가져올 필요가있다 클라우드에 연결하도록하십시오 Wi-Fi를 설정해야합니다 자격 증명을 전송해야합니다

그런 다음 암호화와 연결해야합니다 그러나 실제로는 훨씬 더 많습니다 그래서 내가 할 일은 내가 갈거야 대런에게 주요 개념의 일부에 대해 깊은 잠수를 할 수 있도록 여기에 약간의 설명이 있습니다 무슨 일이 일어나고 있는지

DARREN KRAHN : 멋지다 그래서 한 걸음 뒤로 물러나서 몇 가지 이야기하고 싶습니다 우리가 사용하는 핵심 개념들 장치 들간의 안전한 관계를 수립하고, 근본적으로 우리가하는 일입니다 우리가 장치를 제공 할 때 이러한 개념은 뚜렷하지만 매우 얽혀 있습니다

실제로 볼 수 있듯이 나는 인증, 권한 부여, 및 증명 첫째, 인증 뭔가를 인증하는 것은 간단합니다 정품인지 유효한지 증명하기 위해 정통합니다

우리는 예술 작품, 공식 문서, 필기체 서명 우리는 또한 대부분 얼굴 인식을 사용하여 서로를 인증합니다 이것은 우리에게 매우 자연스러운 일입니다 매우 직관적입니다 컴퓨터는 종종 암호를 사용하여 우리를 인증합니다

자동차는 종종 열쇠를 사용하여 우리를 인증합니다 그래서 우리는 일상 생활에서 항상 인증을 사용합니다 그것에 대해 생각조차하지 않고 그러나 하나의 컴퓨팅 장치가 다른 컴퓨팅 장치를 인증해야합니까? 이것은 우리가 생각하기에 덜 직관적입니다 흔히 비밀 데이터입니다 따라서 본격적인 컴퓨터는 비밀 데이터에 액세스 할 수 있습니다

다른 모든 컴퓨터는 그렇지 않습니다 이 비밀 데이터가 가질 수있는 두 가지 형식이 있습니다 나는 그 얘기를 듣고 싶다 하나는 암호 키입니다 다른 하나는 무기명 토큰입니다

인증하는 다른 방법이 있습니다 그러나 이것들은 매우 일반적이며 직접적으로 관련이 있습니다 우리의 "TensorWash"예제 나는 그들 각각을 조금씩 파헤쳐 보겠다 따라서 암호화 키와 인증서 웹에서 매우 일반적입니다

이것은 웹 브라우저가 웹을 인증하는 방법입니다 섬기는 사람– 예를 들어 HTTPS를 사용합니다 인증에는 인증서 확인이 포함되며, 상기 인증서 내의 상기 정보를 검증하는 단계; 이미 신뢰하고있는 것에 대해 확인 또는 당신이 기대하는 것, 그 증명서는 당신이 신뢰하는 어떤 것입니다 우리는 또한 열쇠 소유 증명을 검증해야합니다 키 자체는 전송되지 않습니다 네트워크를 통해 또는 적어도 열쇠의 비공개 부분

그러나 우리는 다른 컴퓨터에 소유권이 있는지 확인해야합니다 그것의 증거가됩니다 따라서 실제로이 작업을 수행하는 것은 정말 어려울 수 있습니다 이러한 프로토콜을 작성하는 것은 정말 어려울 수 있습니다 나는 너 자신을 직접 만들지 말 것을 강력히 권한다

그것을하는 좋은 도서관을 찾으십시오 Android Things를 사용하는 경우 HTTPS 및 TLS를 지원합니다 내장되어 있으므로 구현할 필요가 없습니다 그래서 나는 이런 종류의 인증을 비교하기를 좋아한다 공항 여권 수표로

네가 상상한다면 여권을 가져 가라 수표까지 와서 요원 특정 정보의 유효성을 검사 할 것입니다 여권에 그들은 그것이 권위에서 왔음을 입증 할 것입니다 그들이 신뢰하는 것

그리고 나서 그들은 소유 체크의 증거를 할 것입니다 여권의 경우, 사람의 얼굴과 그림이 일치한다 그들 앞에 서서 나는 또한 무기 토큰에 대해 이야기하고 싶다 이것들은 약간 다르게 작동합니다

그들은 순서대로 한 컴퓨터에서 다른 컴퓨터로 전달됩니다 확인하십시오 컴퓨터에서 종종 불투명합니다 그것을 보냅니다, 그러나 의미심장 한, 물론, 그것을 확인하는 컴퓨터에 토큰의 송신자 또는 베어러 인증 토큰의 인증에 의해 암시됩니다

검증자는 토큰을보고 확실한 토큰인지 아닌지에 대한 결정 나는 이것을 영화 표의 예와 비교하고 싶다 너는 티켓 대에 가서 영화 티켓을 산다 그 티켓이 당신의 무기명 토큰이됩니다 너는 극장에 들어가, 너는 선물한다

그 토큰, 당신은 들어갈 수 있습니다 그 티켓을 친구에게 넘깁니다 당신의 친구는 이제 그 토큰을 소지 한 사람입니다 그리고 그들은 영화에 들어갈 수 있습니다 종종 이러한 종류의 토큰은 보다 철저한 인증을 나타내는 데 사용됩니다

과거에 일어난 일입니다 또 다른 좋은 예가 있습니다 웹에서 로그인이 필요한 웹 사이트를 가지고있을 때, 사용자 이름과 암호로 로그인하십시오 그리고 암호를 다시 입력해야한다고 상상해보십시오 해당 사이트 내의 모든 페이지에 대해 새 페이지로 이동하고 암호를 다시 입력하십시오

그것은 쓸모 없을 것이다 그리고 너무 자주, 두포에서 무슨 일이 일어나는가? 웹 서버가 브라우저에 베어러 토큰을 발급 할 것입니다 그리고 그것은 일정 시간 동안 살 것이다 그리고 귀하의 계정에 액세스 할 수 있습니다 그 웹 사이트에서 의미합니다

따라서 비밀번호를 계속 입력하지 않아도됩니다 시간 IoT 장치에서도 동일한 방식으로 작동합니다 한 번 철저히 조사 할 수 있습니다 토큰을 발행하면 훨씬 가벼운 인증을받을 수 있습니다

그 시점부터의 메커니즘 인증에 대해 생각해 봅시다 IoT의 맥락에서 외침을받을 가치가있는 몇 가지 측면이 있습니다 하나는 인증이 양방향으로 진행되어야한다는 것입니다 장치 주변의 서비스 및 기타 장치 해당 장치를 인증해야합니다

그리고 그 장치는 인증을 필요로합니다 다른 서비스, 주변의 다른 장치 예를 들어, 장치는 웹 서비스를 인증하고, 브라우저가 웹을 인증하는 것과 같은 방식으로 HTTPS 또는 TLS를 사용하는 서비스 또한, 인증은 반드시 신원 확인을 의미합니다 종종, 우리는 그런 식으로 생각하지만, 반드시 그런 것은 아닙니다

그렇게해야합니다 제한된 웹 서비스의 예를 들어보십시오 [INAUDIBLE] 웹 서비스를 가정 해 보겠습니다 하지만 제품 인스턴스가 다시 연결할 수 있도록 설계되었습니다 그 웹 서비스에

그리고 모든 고객이 실제로 있는지 확인하고 싶습니다 해당 웹 서비스의 인스턴스 당신이하고 싶은 것은 인증입니다 그것은 당신의 장치 중 하나이지만 실제로는 어느 쪽인지 신경 써라 이 경우 실제로 익명 인증을 수행 할 수 있습니다

또한 인증을 바인드해야합니다 의미있는 기대에 이르기까지 우리가 인증하는지 확인하고 싶습니다 우리가 생각하는 것, 우리가 인증을 기대하고있는 것 몇 가지 예를 들어 보겠습니다

만약 당신 앞에 장치가 있다면, 당신은 그 장치를 인증하기를 원합니다 그것을 물리적 인 무언가에 묶는다 기기에서 실제적인 것을 찾아보십시오 기기에 화면이 있고 휴대 전화와 화면에 모두 코드를 표시 할 수 있습니다 예를 들어, 그것은 그 인증의 물리적 바인딩입니다

블루투스 페어링을 할 때 일반적인 경험입니다 또는 그런 것 그러나 장치 나 바코드에 스티커를 사용할 수도 있습니다 그리고 우리는 그것에 대해 조금 더 이야기 할 것입니다 암호화 된 채널도 마찬가지입니다

암호화 된 채널을 설정 한 경우 그런 다음 해당 채널을 인증해야합니다 해당 채널에 인증을 바인드하십시오 따라서 TLS 나 HTTPS와 같은 표준 프로토콜을 사용하는 경우, 이것은 이미 당신을 위해 이루어졌습니다 그것에 대해 걱정할 필요가 없습니다 그러나 두 장치간에 작업을 수행하는 경우, 예를 들어, 그들은 지원하지 않습니다

그런 종류의 프로토콜, 그럼 당신은 이것에 대해 생각할 필요가 있습니다 이제 "TensorWash"예제로 돌아가 보겠습니다 모든 인증을 살펴보십시오 그럴 필요가 있습니다 그래서 우리는 완전하게 프로 비전되지 않은 상태에서 시작할 것입니다

그래서 우리는 우리의 "TensorWash"기계를 상자에서 꺼냈습니다 이제 스마트 폰이 이미 설치되었다고 가정 해 봅시다 스마트 폰은 웹 서비스를 인증 할 수 있습니다 HTTPS, TLS를 사용합니다 그리고 우리의 경우에는 Google에 전화로 로그인 한 Google 계정이 있습니다

그래서 그 웹 서비스는 전화를 인증 할 수 있습니다 그래서 양방향 인증 관계가 있습니다 그곳에 우리가해야 할 첫 번째 일은 이 새로운 장치를 인증해야합니다 우리가 원하는 것은 자격 증명을 보내고 싶다는 것입니다

그 자격 증명은 가치가있을 수 있습니다 – Wi-Fi 암호, 클라우드 서비스에 대한 액세스 그리고 우리가 올바른 장치로 보내고 있는지 확인하고 싶습니다 우리가 그것을 보내기 전에 일단 우리가 그것을 제공하면, 우리는 그 상태로 끝나기를 원합니다 양방향 인증 관계가있는 곳 "TensorWash"시스템과 클라우드 서비스 사이 그래서 여기에 두 개의 예를 들었습니다

Firebase Cloud IoT Core를 "TensorWash"와 함께 사용할 예정입니다 그리고이 두 가지면에서 우리는 양방향 관계를 원합니다 다시 말하지만, 웹 서비스 인증, 우리는 표준 TLS HTTPS를 사용할 것입니다 그리고 우리는 다른 형태를 사용할 것입니다 우리는 조금 더 자세하게 이야기 할 것입니다

나중에 장치를 인증 할 수 있습니다 하지만 그 자격은 될거야 이 과정에서 전화로 제공됩니다 그래서 당신은 거기에 주목했을 것입니다 하지 않은 하나의 인증입니다

내보기에서 두 가지 방향으로 나아가십시오 이건 어때, 여기 노란색 이니? "TensorWash"에서 전화로 "TensorWash"장치를 상자에서 꺼내도 괜찮습니까? 설정하려고하는 전화를 인증하지 않습니까? 그래서 우리는이 방법을 사용했습니다 일반 소비자 장치 용 그들은 상자에서 나오면 깨끗한 상태에 있습니다

소유자가 누구인지에 대한 개념이 없습니다 또는 그들이 신뢰하는 사람 그들은 설치가 가능합니다 그래서 우리는이 경우를 만들고 싶었습니다 그리고 대부분은 괜찮습니다

자격 증명으로 상자에서 나오지 않습니다 그것을 내줄 예정입니다 그것은 자격 증명을 받고, 그래서 덜 중요하다, 예를 들어, 인증이 필요한 전화 "TensorWash"장치 그러나 예를 들어, 엔터프라이즈 제로 터치, 대량 출시 시나리오, 그 장치를 상자에서 꺼내기 원하는 곳 자신을 설정하십시오 상자에서 나올거야

이미 그것이 누구를 신뢰하는지에 대한 개념을 가지고있다 그리고 이것은 HTTPS URL을 취하는 것만 큼 간단 할 수 있습니다 그것을 장치에 임베드하여 깨어날 때, 그것은 그것이 갈 수있는 곳을 안다 그리고 그것을 기입 할 수있는 등록 서버가 될 수 있습니다 나머지 신임장이나 정보와 함께 구성이 필요합니다

그러나 우리는 우리의 대화를 위해 그 비트를 남겨 둘 것입니다 그리고 우리는 소비자가 있다고 가정 할 것입니다 장치, "TensorWash"가 깨끗한 상태로 상자 밖으로 나옵니다 그래서 우리는 인증에 대해 이야기했습니다 어떤 것이 진짜인지 확인하고있는 중입니다

그리고 지금 저는 허가에 대해 이야기하고 싶습니다 승인은 무언가가 허용되는지 여부를 확인하는 것입니다 그것이하려고하는 것을 할 수 있습니다 공항 여권 수표를 다시 생각해보십시오 유효한 여권을 가지고 공항에 도착합니다

수표를 통과 할 것이라는 의미는 아닙니다 예를 들어, 그들은 검사 할 것입니다 당신이 그 날 비행을 계획했는지 여부 여권이 본격적인 여권이기 때문에 당신이 통과한다는 것을 의미하지는 않습니다 여전히 추가 승인이 있습니다

유사하게, 영화 티켓 시나리오에서, 작년 영화 티켓을 가지고 극장에 가면, 당신은 당신의 영화를 보지 못할 수도 있습니다 그것은 다른 시간, 다른 날짜, 다른 보여주는 그리고 거기에 영화 티켓이 완벽하게 정통하더라도 따라서 OAuth 20의 예를 사용하고 싶습니다 매우 일반적으로 사용되는 인증입니다

웹용 프레임 워크 그것은 웹용으로 제작되었습니다 주어진 IoT 사용 사례에 따라 작동하지 않을 수도 있습니다 하지만 좋은 예입니다 중요한 몇 가지 개념을 풀어 나가야합니다

OAuth 20을 사용하지 않더라도, 당신은 이러한 개념들에 대해 생각할 필요가 있습니다 두 가지 큰 것들은 토큰 범위와 토큰 수명입니다 토큰 범위는 어떤 권한을 설명합니다 토큰과 연관되어 있습니다

그럼,이 토큰의 소지자는 무엇에 접근 할 수 있습니까? 토큰 수명은 토큰이 만기되는시기를 설명합니다 그리고 새로 고침 토큰의 개념이 있습니다 대 액세스 토큰 액세스 토큰이 사용됩니다 도착하려는 실제 리소스에 액세스하려면 보호 된 자원

이 토큰은 보통 수명이 짧고 범위가 좁습니다 그리고 그것은 자급 자족 할 수 있습니다 따라서 리소스 서버에 대한 결정 최적화되고 신속해질 수 있습니다 또한 백엔드 조회를 수행 할 필요가 없습니다 수신 한 토큰을 살펴 본다

그 정보로 결정을 내릴 수 있습니다 반대로 토큰을 새로 고침하면 이전 액세스가있을 때 새 액세스 토큰을 얻는 데 사용됩니다 토큰이 만료됩니다 이 토큰은 종종 수명이 길다 그들은 더 광범위하게 범위가 지정되어 있으므로 가서 다양성에 대한 액세스 토큰을 얻고 싶을 수도 있습니다

다른 범위의 그리고 그들은 특별히 자체적으로 포함되지 않습니다 이것이 가능하면 허가가 가능합니다 그 여부에 대한 결정을 내리는 서버 새로 고침 토큰을 기반으로 새 액세스 토큰을 제공해야합니다 해지가 있었는지 여부를 결정할 수 있습니다

그 허가 그리고 그것은 당신이 IoT와 함께 갖고 싶어하는 것입니다 그 수동적 만료를 원한다 따라서 해지되면 현재 액세스 토큰 집합 만료되면 더 이상 액세스 할 수 없습니다 다른 액세스 토큰을 가져올 방법이 없습니다

너는 상황에 있고 싶지 않아 사용하지 않는 IoT 장치를 벽장에서 꺼내야 만하는 곳, 여전히 부팅되고 공장 초기화가 이루어지기를 바랍니다 그것을 인증 해제하기 위해 당신은 그 일을 수동적으로 할 수 있기를 원합니다 그래서 이것은 OAuth spec rfc6749의 스 니펫입니다 새로 고침 토큰 흐름을 묘사합니다

중간에있는 액세스 토큰을 볼 수 있습니다 보호 된 리소스 및 리소스 서버에 액세스하는 데 사용됩니다 E와 F 단계에서 액세스 토큰이 만료 된 곳입니다 그러면 오류가 다시 발생합니다 그리고 바닥의 아래쪽, G와 H, 새로 고침 토큰이 사용 된 것을 볼 수 있습니다

권한 서버에서 다른 액세스 토큰을 가져올 수 있습니다 다행히도 시각화에 도움이됩니다 조금 더 좋아 그럼 인증에 대해 생각해 봅시다 IoT 또는 IoT 장치의 맥락에서 우리는 인증에 대해 이야기했습니다

두 가지 방법이 필요합니다 권한 부여는 두 가지 방법으로 갈 필요가 있습니다 아니면 적어도 양 방향으로 생각할 필요가 있습니다 우리는 누가 장치에 액세스 할 수 있는지, 누가 데이터를 읽을 수있는 장치에 명령을 보낼 수 있습니다 장치 등으로부터 우리는 또한 장치가 무엇에 접근 할 수 있는지 생각할 필요가 있습니다

웹 서비스에 연결할 때 어떤 권리가 있는지, 예를 들면? 우리는 최소한의 권한 원칙을 사용하기를 원합니다 우리는 필요한 것보다 더 많은 특권을주고 싶지 않습니다 이것은 IoT의 정말로 공통적 인 문제입니다 그저 그렇게주는 것이 너무 쉽기 때문이라고 생각합니다 서비스에 대한 기기 총 승인 에 연결하면 더 이상 문제가 발생하지 않기 때문입니다

인증 오류가 발생하지 않으며, 모든 것이 제대로 작동합니다 문제는 장치가 해당 승인의 10 % 사용, 기기가 해킹 당하면 이제 공격자는 모든 것을 액세스 할 수 있습니다 비록 당신이 그것을 사용하지 않았더라도 또한 만료가 필요합니다 나는 수동적 만료에 대해서 이야기했다

또한 토큰을 전달할 때 조심해야합니다 토큰은 물론 만들어집니다 특정 목적으로 통과, 예를 들어 검증 하지만 너는 네가 토큰을 보내기 전에 수신자를 인증했습니다 검증을 위해 웹 서비스로 보내고 있다면, HTTPS를 초과하는지 확인하십시오

새 기기를 구입하는 경우, 우리의 "TensorWash"케이스처럼, 그 새로운 장치를 인증하십시오 토큰을 보내기 전에 잠시 후에 알 수 있듯이 Firebase와 같은 Google 서비스 Android의 경우 Firebase SDK가 토큰을 관리합니다 이 토큰 관리에 대해 걱정할 필요가 없습니다 중대하다 그럼 돌아가서 승인을 살펴 봅시다

특히 "TensorWash"시나리오에서 우리는 전화가 이미 있다고 가정하는이 상태에서 시작합니다 이러한 클라우드 서비스로 새 장치를 설정할 수있는 권한이 부여되었습니다 전화가 암묵적으로 승인되었습니다 "TensorWash"장치를 설정해야합니다 그것에 관한 정책이 있으십시오

우리가 제공 한 후에 우리가 원하는 곳은 Firebase와 양방향 인증을 원합니다 그래서 우리는 Firebase Realtime Database를 사용할 것입니다 또한 장치와 동기화 할 수 있습니다 또한 장치에서 클라우드까지 데이터를 동기화 할 수 있습니다 그리고 장치와 동기화 될 때, 우리는 실제로 그것을 사용하여 장치에 명령을 내릴 수 있습니다

Firebase가 승인 된 권한이 있습니다 장치에 명령을 내리고 장치 데이터를 Firebase로 밀어 넣을 권한이 있습니다 Cloud IoT Core의 경우 화살표를 한 방향으로 만 넣으면됩니다 우리가 사용하려고하는 것은 통계입니다 기기가 작동하면서 메타 데이터를 Cloud IoT Core 프로젝트로 밀어 넣는다

푸시 할 권한이 있어야합니다 그 특정 프로젝트에 이제 어떻게 설정했는지에 대한 세부 정보를 보여 드리겠습니다 모두 위로 첫째, 저는 하나 더 핵심 개념에 대해 이야기하고 싶습니다 그것은 증명입니다

증명은 실제로 컴퓨팅의 무결성을 입증합니다 상태를 가진 장치, 현재 운영중인 장치 포함 장치의 상태 그래서 이것은 정말로 특별한 종류의 인증입니다 이것을 가능하게하기 위해서, 기기에 이미 자격증 명이 있어야합니다 그것은 그 자체를 증명하는 데 사용할 수 있습니다

종종 공장을 제공합니다 그래서 장치가 상자에서 나오면, 이미 진짜 인스턴스임을 증명할 수 있습니다 그 특정한 제품의 또한 증명이 종종 바운드됨을 언급 할 가치가 있습니다 암호 키로

따라서 장치의 증명 주장 대신에, 말하자면, 저는 안전한 모드에서 작동하는 진정한 장치입니다 그것은 조금 더 비슷합니다이 특별한 암호 키 정품 장치로 안전하게 보관 보안 모드에서 실행 중입니다 그리고 이것은 유용합니다 증명을 다른 것에 묶는 우리 열쇠를 사용합니다

다른 종류의 인증, 예를 들면 그리고 나중에 예제에서 보게 될 것입니다 Cloud IoT Core에 연결하기 위해 이와 같은 키를 사용합니다 그래서 안드로이드는 특히, 당신은 다양한 속성을 증명할 수 있습니다 당신은 그것이 진정한 안드로이드 것들임을 증명할 수 있습니다 장치

인스턴스인지 확인할 수 있습니다 특정 제품에 대한 장치 ID를 확인해야합니다 장치 상태를 확인할 수도 있습니다 내가 말했던 것처럼 그리고 우리가 끌어 낸 것들 중 하나는 검증 된 부팅 상태입니다

이 장치가 실제로 실행 중일 때, 그들은 그 장치를위한 소프트웨어를 증명합니다 암호화 키의 속성을 검증 할 수도 있습니다 그리고 나는 오늘 그 일에 들어 가지 않을 것입니다 이것이 인증서 체인이 보이는 것입니다 5 단계 깊이

맨 위에는 Android Things CA, Root CA, 및 중간 CA 이들은 Google에서 관리합니다 이것들은 모든 안드로이드 것들 증명에 대한 권한입니다 인증서 중간 3 단계에는 제품 별 CA가 있습니다 또한 Google에서 관리합니다

하지만 Android Things 개발자의 맥락에서 볼 수 있습니다 콘솔 특정 제품과 관련이 있습니다 그 콘솔에 콘솔에 제품을 만들 때마다, 중간 수준의 CA가있을 것입니다

해당 제품에 할당 된 따라서 다음 단계에서는 장치 별 CA가 있습니다 그리고 이것은 공장의 각 장치에 제공됩니다 이것은 장치마다 고유합니다 해당 장치의 ID가 포함되어 있습니다 그리고 장치가 상자에서 나오면, 이것이 가지고있는 것입니다

마지막 단계는 응용 프로그램 키입니다 및 인증서 그래서 이것은 장치에서 생성되었습니다 그것은 귀하의 응용 프로그램에 의해 생성되었습니다 그리고 인증서도 생성됩니다

장치 별 CA에 의해 신뢰할 수있는 실행에 의해 보호된다 환경 그래서 우리의 "TensorWash"예제에서, 증명은 화살표로 여기에서 일어난다 "TensorWash"장치에서 전화까지 따라서 우리가 그 검증을 할 때, 전화가 확인하려고하면 장치를 인증하려고합니다

그것이 우리가 증명을 사용하는 곳입니다 그래서 빠른 검토 우리는 인증, 점검 무언가가 진실하거나 유효하다는 것; 허가, 그것이 허용되는지 확인 그것이하려고하는 일을하는 것; 및 증명, 이는 특히 컴퓨팅 장치의 무결성을 검사하는 것입니다 그리고 지금, 웨인은 우리에게 보여줄 것입니다 Android Things로이 모든 작업을 수행하는 방법

쿨, 고마워 이제 주요 개념에 대해 살펴 보았습니다 이제 우리가 무언가를 만드는 방법에 대해 이야기합시다 이것을 사용하여 Android 및 기타 서비스에서 사용할 수 있습니다 Google이 제공하는 첫 번째 단계는 무언가를 사용할 수 있다는 것입니다

Nearby Connections (인접 연결) 그리고 인근 연결은 훌륭합니다 이는 추상화 계층을 제공하기 때문입니다 근처의 기기를 찾는 데 도움이되며 암호화 된 통신 채널을 설정합니다 두건 아래서는 블루투스, BLE, Wi-Fi 핫스팟을 사용합니다

그 시간에 사용할 수있는 것은 무엇이든 사용합니다 그것에 관한 또 다른 좋은 점은, 연결이 설정되면, 그것은 양측에 사람이 읽을 수있는 짧은 코드를 제공합니까? 화면에 표시 할 수 있습니다 이제는 많은 사람들이 기기를 사용했습니다 여기에 화면에 약간의 코드가 표시됩니다 그리고 그것은 대부분의 경우에 훌륭합니다

그러나 앞서 언급 한 세탁기 화면이 없습니다 따라서 우리에게는 필요한 보안이 충분하지 않습니다 그리고 우리는 어떻게 그 문제를 1 분 안에 처리 할 수 ​​있습니다 하지만 Nearby Connections는 첫 번째 빌딩 블록입니다 우리가 사용할거야

따라서 코드 스 니펫을 살펴보면, 이것은 단순한 일종의 약식 버전입니다 주변 연결 샘플의 여기서 우리는 인근 연결을 만드는 것을 볼 수 있습니다 클라이언트 상단에 그런 다음 몇 가지 검색 옵션을 지정합니다

방금 기본값 인 P2P 클러스터를 사용했습니다 우리가 여기서 사용하는 것은 그렇게 중요하지 않습니다 일단 발견 과정을 시작하면, 우리는 서비스 ID가 필요합니다 그래서이 경우에 그것은 텐센트 워시의 예입니다 제품 ID와 같습니다

Android에서의 앱 이름이 아닙니다 그들은 그것을 서비스 ID라고 부릅니다 그러나 그것은 당신의 장치의 이름이 무엇인지, 또는 당신이 그것을 부르고 싶은 무엇이든지 그런 다음 엔드 포인트 발견 콜백도 있습니다 Nearby Connections에서 언제든지 코드를 호출합니다

새로운 장치가 발견되었습니다 그리고 당신이 할 일은리스트 뷰를 유지하는 것입니다 그리고 UI를 업데이트하고, 발견 된 모든 장치를 보여줍니다 명확하게 말하면, 우리는 한 번에 하나 이상의 장치를 사용할 수 있습니다 그리고 나서 사용자가 원하는 것을 선택하면, 그들은 그것을 선택할 수 있습니다

그리고 우리는 연결을 설정할 수 있습니다 기기 측에서 Nearby 지원 startAdvertising 메소드입니다 기본적으로 사람이 읽을 수있는 장치 이름을 제공하십시오 그런 다음 동일한 서비스 ID를 입력합니다 그리고 콜백을 설정합니다

연결이 설정 될 때마다 호출됩니다 따라서 사용자가 장치를 선택하면, 그래서 그들은 스크린에서 그것을 골랐습니다 이제 요청 연결 방법을 사용해야합니다 연결 설정을 처리합니다 전달 된 원격 엔드 포인트 ID로 이동하십시오

다시 한 번 콜백이 있습니다 그리고 onConnectionInitiated는 다음과 같습니다 해당 장치로 연결이 시작될 때 사용됩니다 그리고 그것은 인증 토큰을 채운다 그것은 우리가 언급 한 짧은 코드입니다

인근 연결을 사용하면 사람이 읽을 수있는 짧은 값을 얻을 수 있습니다 다시 한번, 우리는 디스플레이가 없다 그래서 우리는 잠시 후에 그 문제를 어떻게 다룰 지 이야기 할 것입니다 하지만 여기서 볼 수 있습니다 코드는 정말 간단합니다

Nearby Connections와 함께 작업 할 수 있습니다 그리고 그것은 우리를 아주 빨리 가게합니다 그 다음 일은 대런이 증인에 대해 말한 것입니다 및 장치를 확인하는 것 따라서 우리 앞에있는 장치가 우리가 실제로 연결하고있는 것입니다

전화로 우리가하는 일은 실제로 임의의 도전 과제를 만듭니다 그래서 난수는 유일합니다 이 연결을 위해 그런 다음 기기로 전송합니다 그리고 우리는 이것을 사용하여 재연 공격을 막습니다

그리고 장치는 임의의 도전을합니다 인증 코드와 결합 주변 지역의 연결에서 가져 와서 그런 다음 이것을 사용하여 생성합니다 Android Keystore의 새로운 키 증명 인증서 체인과 함께 이 인증서 체인은 전화로 다시 전송됩니다 그러면 휴대 전화에서이를 확인할 수 있습니다 잠시 후에 얘기하겠습니다

그리고 우리가 임의의 도전을 사용하고 있지만, Nearby의 인증 코드가 중요합니다 암호화 채널에 바인딩하는 데 도움이되기 때문에 우리가 지금 사용하고있는 것 그리고 다른 것은 속도를 결정하는 것이 중요하다는 것입니다 실패한 연결을 제한합니다 그래서 네가 원하지 않는 것은 누군가를위한거야

기기를 끊임없이 연결할 수 있어야합니다 임의의 코드를 시도해보고 일부 키를 생성하도록하십시오 속도를 줄이는 것이 더 낫습니다 귀하의 장치를 공격하는 사람들 여기에 몇 가지 코드가 있습니다

너무 많이 걱정하지 마십시오 너에게 몇 가지 비트를 보여주고 싶었어 그리고 거기있는 것의 조각 하지만 장치에는 인증 토큰이 있습니다 근처에서

우리는 이전에 얻은 무작위적인 도전에 참여합니다 우리는 그것을 함께 결합합니다 이 코드를 사용하여 여기에 서명 키를 생성합니다 그리고 당신이 무언가를 생성 할 때 흥미로운 부분이 있습니다 Android Keystore에서 신뢰할 수있는 상태로 완료되었습니다

실행 환경 따라서 우리는 앱에 키를 실제로 보관하지 않습니다 우리는 실제로 신뢰할 수있는 실행 환경에 보관합니다 이것이 의미하는 바는 훌륭합니다 누군가가 우리 앱을 해킹하더라도, 그들은 개인 키를 꺼낼 능력이 없습니다

따라서 우리가하는 일에 추가적인 보안이 추가됩니다 어쨌든, 우리는이 모든 것들을 넣었습니다 모든 보라색 값은 모두 표준 상수입니다 당신이 사용하는 따라서 정확하게 캡처하는 것에 대해 걱정하지 마십시오

나중에 샘플을 출시 할 예정입니다 그 속에이 모든 것을 가지고 있습니다 그러나 나는 그저 약간의 걸음을 걷고 싶었습니다 하지만 결국 인증서 체인을 추출합니다 그리고 그게 당신이 그걸로 전화로 돌려 보내는거야

그것을 확인하고 무엇이든지 할 것입니다 그래서 Darren은 이전에 인증서 체인의 개념에 대해 언급했습니다 공장 출고시 증명 키 이 잎의 인증서 체인도 함께 제공됩니다 Android Things 루트 인증서로 돌아갑니다 이제 우리는 방금 생성 한 키에 대한 전체 체인을 갖게됩니다

그래서 바닥에, 우리가 방금 만든 것입니다 그리고 그것은 안드로이드 Things 루트에 다시 연결됩니다 이제 "TensorWash"가 생성되었습니다 그것은 사용자 지정 인증 키와 인증서 체인입니다 우리는 체인을 전화로 보냈습니다

전화로 이걸 확인해야 해 개조되지 않은 합법적 인 장치입니다 그리고 그것은 또한 우리 앞에있는 것입니다 사실 꽤 지루한 과정입니다 여러 단계가 있습니다

아마도 우리가해야 할 일입니다 장래에 도서관에두기 하지만 네가해야 할 일의 요지 인증서를 확인해야합니까 체인이 올바르게 연결되었습니다 루트가 신뢰할 수 있는지 확인해야합니다 Android Things의 루트

제품 ID인지 확인해야합니다 장치의 128 비트 UUID를 확인할 수 있습니다 이것은 공장에서, 당신은 실제로 코드를 가지고 박스에 찍어 인쇄 할 수 있습니다 사용자가 실제로 일치하는지 확인할 수 있습니다 그들 앞에서 한 사람과 부팅 상태를 확인할 수 있습니다

키가 서명되면 전송됩니다 부팅 여부를 나타내는 플래그와 함께 로더가 조작되었습니다 증명 질문을 확인합니다 우리는 조금 이야기 할 것입니다 그러면 공개 키로 저장할 수 있습니다

그리고 우리가 인증을 원할 때 유용 할 것입니다 나중에 클라우드 IoT를 사용합니다 전화 측에서 우리는 입증이 필요한지 확인해야합니다 도전은 정확합니다 그래서 우리는 그 인증서에서 증명을 추출합니다

그런 다음 인증 토큰의 해시를 만듭니다 근처에서부터 우리가 이전에 생성 한 무작위적인 도전 그리고 우리는 그것들을 결합하고 해시를 생성합니다 인증서에서 나온 것과 일치하는지 확인합니다 장치에서 체인

그리고 이런 종류의 것은 전체 루프가 완전하고 안전합니다 중요한 것은 실제로 장치에 직접 인증을 보냈습니다 주변에서 수행되었습니다 그래서 모든 것이 올바르게 수행되었는지 확인합니다 중간 공격에 사람이 없다는 것을 도중에

이제 우리는 그 장치가 우리의 것이라는 것을 압니다 그리고 이러한 모든 문제를 해결하는 데 도움이됩니다 우리가 확인한 이제 전화가 "TensorWash"를 신뢰할 수 있음을 확인했습니다 이제 Wi-Fi 네트워크에서 장치를 인증해야합니다 가장 빠른 방법은 팝업으로 휴대 전화의 활동을 말하자

Wi-Fi SSID 및 패스 프레이즈? 그러나 물론 사용자들은 그렇게하고 싶지 않습니다 사용자 친화적이지 않습니다 그리고 사용자는 자신의 암호를 입력해야합니다 앱이 암호를 읽는 동안 앱이 암호를 보게됩니다 장치로 전송됩니다

그리고 다음으로 할 일은 장치 측에서, Wi-Fi 관리자를 사용해야합니다 SSID와 암호를 설정합니다 그래서이 코드는 작은 코드 조각입니다 그러나 Wi-Fi 관리자는 좀 더 복잡합니다 따라서 실제 샘플을 보면, 이것은 작성해야하는 코드입니다

Wi-Fi Manager와 대화 할 수 있습니다 그래서 이것은 우리가 작업하고있는 것입니다 우리가 사용할 수있는 작은 코드 라이브러리를 만들고 싶습니다 당신이 가지지 못하게하기 위해이 모든 것을 건너 뜁니다 그 종류의 코드를 작성하십시오

그리고 우리는 더 좋은 소식을 가지고 있습니다 Nearby 설치라는 API가 있습니다 Google Play 서비스로 이동합니다 곧 제공 될 Nearby Setup에 대한 가장 좋은 점은, Wi-Fi 자격증을 취득 할 수있는 능력이 있다는 것입니다 휴대 전화에 저장되어 다른 기기 인 Google에 전달됩니다

서비스를 재생하십시오 Android Thing은 Google Play 서비스를 지원합니다 자격 증명을 복사 할 수 있습니다 너 자신을 다룰 필요가 없다 사용자는 입력 할 필요가 없습니다

따라서 사용자 편의를 위해 매우 유용합니다 그래서 곧 나옵니다 세부 사항은 developersgooglecom/nearby에서 확인할 수 있습니다

나중에 준비가되면 우리 장치에서 인터넷에 접속할 수 있고 열쇠가 있습니다 자, 이제 어떻게하면 우리는 이야기하고 얻는 것에 대해 갈 것입니다 클라우드 서비스가이 장치에서 활성화되었습니다 그래서 Firebase와 Cloud IoT에 대해 이야기 할 것입니다

그래서 우리가해야 할 첫 번째 일은 전화 측에서, Firebase를 설치해야합니다 Firebase는 Android, iOS 및 웹에서 작동하기 때문에 훌륭합니다 따라서 휴대 전화 앱은 여러 종류의 기기에있을 수 있습니다 Firebase 프로젝트 ID를 생성합니다 그리고 우리는 전화와 장치 모두에서이를 사용할 것입니다

그런 다음 전화 사용자에게 인증을 요청합니다 그들의 사용자 이름과 비밀 번호로, 대화 상자를 팝업, 그러면 우리가 토큰을 얻을거야 이전에 생성 한 암호화 된 파이프를 전달하십시오 여기에 약간의 코드 스 니펫이 있습니다 맨 위에 로그인 요청을하는 중입니다

흥미 롭습니다 우리는 단지 요청하고 있기 때문입니다 이메일 ID의 범위 Google은 완전한 Google 액세스를 원하지 않습니다 파일이나 이메일 또는 그와 비슷한 것에 액세스 할 수 있습니다

우리는 신분증 명을 요구하고 있습니다 범위를 제한하려고하기 때문에 Darren이 이전에 이야기했던 것과 같습니다 우리는 결국 JSON 웹 토큰을 얻습니다 그러면 Firebase로 로그인 할 수 있습니다 그러면 우리 장치는 Firebase와 상호 작용할 수 있습니다

하지만 우리는 그 토큰을 발송합니다 이전 토큰을 기기로 보냈습니다 그래서 Firebase에 로그인하여 그걸로 할 수 있습니다 그래서 다른면에서 Google 토큰을 가져옵니다 그것을 Firebase에 전달하고 그걸로 인증하십시오

이제 장치는 Firebase Realtime Database에 액세스 할 수 있습니다 코드 스 니펫도 장치에서 매우 유사하게 보입니다 Android Things 기기는 일반 Android이므로, 우리는 전화에서하는 것처럼 동일한 코드를 사용합니다 자격증 명을 받아서 Firebase 인증에 대한 자격 증명으로 로그인하려면, 이제 끝났어 이제 우리는 양방향 인증을 받았습니다

그리고 우리의 "TensorWash"는 이제 완전히 Firebase Realtime Database에 참여하십시오 그럼 기어를 바꿔서 끝내자 Cloud IoT Core와도 이야기 할 수 있습니다 그래서 당신이 수천 명의 사람들과 함께 세탁실을 운영하고 있다고 상상해보십시오 기계와 수천 개의 위치, 예측 분석을 수행하려고합니다

따라서 우리는 이러한 장치에서 데이터를 푸시하고자합니다 분석을위한 구름 IoT 그래서 Cloud IoT에서 우리는 장치를 등록합니다 휴대 전화에 앱에 대한 자격 정보가 있어야합니다 그리고 당신은 그 공인 인증서 우리가 이전에 만들었던 것, 그리고 당신은 그것을 줄 것입니다

클라우드 IoT로 장치를 알 수 있도록 그리고 그것을 믿을 수 있습니다 그런 다음 MQTT를 사용하여 요청을 보냅니다 기기 ID로 Cloud IoT에 연결하고 Google 키로 서명했습니다 클라우드 IoT가이 메시지를 확인할 수 있습니다 이 키를 확인하여 합법적입니다

이전에 받았던 내용으로 확인하십시오 그런 다음 TLS를 사용하여 MQT 요청을 보냅니다 그리고 우리는 우리의 장치가 알고 있도록 TLS를 사용합니다 누가 데이터를 보내고 있는지를 기억할 수 있기 때문에 신뢰할 수 있습니다 양측은 상대방을 확인해야합니다

여기에 아주 간단한 작은 조각이 있습니다 프로젝트 ID와 사물의 일부를 입력하는 방법을 보여줍니다 그렇게 그리고 샘플도 공개 할 예정입니다 곧 Android에서 Cloud IoT Core를 수행하는 방법을 보여줍니다

그리고 좋은 점은 publishDeviceState입니다 아래쪽에는 기본적으로 원하는 이진 BLOB가 필요합니다 그것을 클라우드 IoT로 보냅니다 그리고 생성에 대해 걱정할 필요가 없습니다 어떤 메시지 든

그래서 우리는 Cloud IoT와 Firebase에 대해 매우 빨리 이야기했습니다 당신이 할 수있는 일의 다른 옵션은 무엇입니까? 음, 우리는 또한 스마트 홈이 있습니다 Google에서 기기를 제어하는 ​​새로운 방법입니다 조수 당신이 전구를 가지고 있다면, 당신은 할 수 있습니다

조명을 조금 어둡게 말할 수 있습니다 또는 세탁기의 경우, 스마트 홈을 구현하면 내 세탁기 시작하고, Google Assistant에서 세탁물을 차게됩니다 따라서 Firebase를 구현하면 스마트 홈에 연결되는 작은 웹 고리를 작성하십시오 그런 다음 기기를 사용하도록 설정할 수 있습니다 Google Assistant로 그리고 마침내, 당신은 실제로 Google Assistant SDK를 장치에 내장하십시오

세탁기와 실제로 대화 할 수 있음을 의미합니다 직접 기계에 명령을 내리십시오 그것은 시원한 종류 다 그럼 다음은 뭐니? 조만간 공장에서 핵심 프로비저닝 스토어를 제공 할 예정입니다 기본적으로 하드웨어 장치가 있습니다

Android Things 기기에 키를 추가 할 수있게됩니다 이것은 당신이 할 수있는 일입니다 또는 그들이 생산 될 때 그리고 이것이이 열쇠가 장치에 어떻게 도달 할 것인가입니다 개발자 키트가있는 경우 키 서명을 올바르게 테스트 할 수 없으며, Android의 공식 키가 없으므로 소지품

그러나 우리는 도구를 공개 할 것입니다 곧이 일을 할 수 있습니다 Nearby Setup API도 곧 출시 될 예정입니다 그리고 그것은 프로비저닝을하는 것이 정말 좋을 것입니다 이거 정말 쉽습니다

따라서 요약하면 Google 사이트를 방문하십시오 androidthingswithgooglecom, 훌륭한 커뮤니티입니다 많은 정보가 담긴 사이트

우리는 G + community, gco/iotdev, 더 많은 정보를 얻을 수있는 곳, 그리고 오는 사이트를 추적 할 수있는 Nearby 사이트 곧 또한 소셜 미디어에서도 우리를 팔로우하십시오 기회가 없다면 IMX7 중 하나를 사용해보십시오 Google I / O에서 제공하는 개발자 키트 그래서 당신이 그 중 하나를 얻을 수 있는지 확인하십시오

너 자신 안드로이드 것들을 시도 할 수 있습니다, 정말 재미있는 개발 경험이기 때문입니다 프로토 타입 제작에 적합합니다 그러나 생산 장치 제작에도 좋습니다 그것이 우리를위한 것입니다와 주셔서 대단히 감사합니다

그리고 우리는 회의에서 당신을 만날 겁니다 고맙습니다 [음악 재생]

Better share targets with Direct Share (Android Development Patterns S2 Ep 7)

제가 뭔가를 공유한다는 건 보통 그 순간 무언가가 정말 멋지다고 생각했기 때문이겠죠 그 말인즉, 만약 공유하는데 시간이 너무 많이 걸린다면 저는 아마 그냥 창을 닫고 공유하는 걸 포기할 것입니다

저는 조안나 스미스입니다, 여러분이 가장 싫어할 유저 타입이죠 사람들과 더 멋지게 공유하기 위해 안드로이드 마시멜로에서 새로운 기능을 소개합니다 다이렉트 쉐어 다이렉트 쉐어를 이용하면 사용자가 공유를 눌러 당신의 어플에서 공유할 대상을 설정할 수 있습니다 쉽게 말하자면 현재는 이렇습니다 언니에게 보여줄 재밌는 기사를 발견하면 공유를 누르고 당신의 어플을 선택하죠

그러면 어플이 시작됩니다 좋아요 하지만 다이렉트 쉐어를 이용하면 바로 언니를 선택할 수 있고 해당 기사가 이미 언니와의 대화창에 보내질 준비가 되어있는 상태로 어플이 켜질 것입니다 좋은 이용자 경험이란 바로 이런 거죠 공유할 대상을 설정하기 위해서는 ChooserTargetService에서 그룹을 정의하고 당신이 만든 서비스에서 OnGetChooserTargets를 시행해야 합니다

이 방법은 공유할 대상을 제안함으로써 공유를 활성화시킬 것입니다 OnGetChooserTargets가 바로 당신의 어플을 매력적으로 만들어줄 방법입니다 가장 최근의 대화창 10개를 불러들여도 되고 아니면 사용자가 가장 아끼는 사람이 누군지 알아낼 다른 방법을 제안해서 사용자의 친한 친구 목록을 대신 작성해줘도 되죠 아니면 단체 대화창 같은 특정한 대화창에서 첨부파일이 많다는 것을 알게 되면 그 대화창이 공유 대상이 되겠죠 어떻게 할 것인지는 당신에게 달려 있습니다

저희는 그냥 당신이 더 나은 어플을 만들 수 있도록 기능을 제공하는 것입니다 자, 이제 매니페스트를 업데이트해야 합니다 신규 서비스가 항상 그렇듯 이것 또한 표시해야 하는데 다른 서비스와 달리 저희는 BIND_CHOOSER_TARGET_SERVICE 허가가 있습니다 이것으로 시스템과 연동하여 암시적 인텐트와 공유 대상을 정확히 교환할 수 있습니다 물론 이 서비스를 Chooser Target Service로 적용할 인텐트 필터도 같이 말이죠

이것으로 공유를 활성활시킬 모든 준비는 끝났는데 만약 사용자가 당신의 옵션 중 하나를 선택하면 어떻게 되죠? 어플이 설치된 후에 제대로 작동을 해야 하는데 그러기 위해서는 특정 활동에 맞는 암시적 인텐트를 설정해야 합니다 그럴려면 메타 데이터가 있어야 하죠 하지만 그게 전부에요 간단하죠 당신의 어플에서 다이렉트 쉐어를 이용하고 싶으시면 저희가 제공하는 재미있는 샘플을 구경해보세요

아래에 링크가 있습니다 아니면 저희 서류를 살펴보셔도 됩니다 하지만 더 중요한 건 계속 멋진 어플을 개발해주세요 [음악 재생]

Moza Mini-Mi Basic Setting with Moza Genie [Eng Sub] / 모자 미니미 기본 설정법

오늘은 Moza Mini-Mi의 기본 설정을 보여 드리겠습니다 기본적으로 기본 설정이 좋습니다

그러나 설정을 조정하면 비디오 화질이 향상됩니다 먼저 스마트 폰을 연결하십시오 스마트 폰을 두 가지 방법으로 연결할 수 있습니다 셀카 사용자에게이 직위를 추천합니다 오른손으로 짐벌을 잡으면 카메라가 왼쪽이되고 더 안정된 구성을 만듭니다

이것을 첨부합시다 손잡이를 풀다 첨부 스마트 폰 스마트 폰 수평을 설정하고 손잡이를 조입니다 여기에서 보듯이 격차가 있습니다 카메라 시야각 때문에 나는 수평을 설정하는 것이 좋습니다 그러나 시간이별로 없다면 적당히 설정하는 것이 그렇게 나쁘지는 않습니다

불균형 (완전히 부러진) 테스트와 짐발의 위대한 힘이 스마트 폰을 보유하고 있기 때문에 그러나 좋은 균형은 더 좋은 결과를 만듭니다 그리고 Moza Genie App으로 설정을 조정합니다 앱 스토어 또는 Play 스토어에서 다운로드 할 수 있습니다 안드로이드 앱은 베타 버전이므로 카메라 기능이 완벽하지 않습니다

그러나 어려움없이 짐 밸런스 설정을 조정할 수 있습니다 블루투스를 켜면 짐벌을 감지합니다 터치 한 번 연결되었습니다

한 번 더 터치하면 세부 정보를 볼 수 있습니다 설정으로 이동 많은 기능 Axis 매개 변수 설정은 다음과 같습니다 이걸 만져

롤, 피치, 요 설정을 변경할 수 있습니다 아니야! 🙂 첫째로, 모터 파워에 관한 것입니다 기본 설정은 50입니다 변경하지 않아도됩니다 그러나 아이폰 8+ 나 갤럭시 노트와 같이 무거운 smatphone을 가지고 있다면 뭔가를 바꿔야한다

그 전에는 모터 전력이 낮고 정상적인 상황을 보여 드리겠습니다 모터 전력이 낮을 때 짐발이 흔들리고있다 짐벌은 스마트 폰을 수용 할만큼 힘이 부족합니다

그리고 짐벌이 충분한 힘을 가지고있을 때, 비디오가 더 안정적입니다 내 Galaxy S7은 약 150g (033lb) 모터 동력 50으로 충분합니다

무거운 스마트 폰 (약 200g (044lb))을 사용하는 경우 모터 전력 60 ~ 70을 설정하십시오 모터 전원을 클릭하고 + 또는 -를 눌러 확인하십시오 전문가가 아닌 경우 Roll, Pitch, Yaw 같은 값을 설정하십시오 무거운 스마트 폰을 사용할 경우 60 ~ 70으로 설정하십시오

정상 크기의 스마트 폰을 사용하는 경우 변경할 필요가 없습니다 다음 설정을 따르십시오 YAW 축 설정은 아니야! Axis 정보 롤 피치 편주 YAW는 패닝에 중요하므로 YAW 만 조정합니다

YAW 축으로 이동 여기는 부드러움 따라와 추종 속도를 조정할 수 있습니다 예를 보여 드리겠습니다 평활도 10 짐발은 매우 부드럽게 움직이지만 사람들을 직접 따라갈 수는 없습니다 부드럽게하기 50 (기본값) 90 세트 Ronin S의 스포츠 모드처럼 그것은 빨리 따르기 때문에 이것을 스포츠 나 아이들을 위해 사용하십시오

제 설정은 35입니다 나는 부드럽게 움직이는 것을 좋아합니다 그리고 마지막으로, 한 가지 더 위 휠을 3 번 누르면, 시작 모드를 사용할 수 있습니다 Mini-Mi에는이 기능 만 있습니다

(스마트 폰) 하드웨어 제한 때문에 Smooth 4 또는 Osmo Mobile 2에이 기능을 넣을 수 없습니다 회전 속도를 변경할 수 있습니다 main으로 돌아 가기 여기에 착수 속도가 있습니다 기본 속도가 느리기 때문에 70으로 설정했습니다

이제 기본 설정이 완료되었습니다 종료하기 전에 저장해야합니다 저장하지 않으면 변경된 값이 조정되지 않습니다 앱으로 기본 설정이 완료됩니다 그리고 마지막으로 중요한 것

그것은 당신의 산책에 관한 것입니다 제대로 걷지 않으면이 설정이 쓸모 없게 될 수 있습니다 예를 들면 뻣뻣한 나무처럼 걷는다면, 결과가 떨리고 울퉁불퉁 할 수 있습니다

그래서 짐벌을 가지고 걸을 때, 무릎을 구부리고 암살자처럼 걸어 가면 계속 날아갈 것입니다 가장 중요한 것은 걷는 것입니다 짐벌은 완벽한 도구가 아니기 때문에

오늘 나는 당신에게 설치 방법을 보여 줬다 따라서 자신의 스타일에 맞는 가치를 설정하십시오 그리고 다음에 추적 모드에 대해 알려 드리겠습니다

오늘의 리뷰는 끝났습니다 고맙습니다