Android Q beta 2, Cloud Healthcare API beta, & ML Kit for Natural Language Processing

토드 케펠 만 : 안녕 저는 Developer Show의 Todd Kerpelman입니다

가장 멋진 개발자의 주간 업데이트입니다 Google의 뉴스 안드로이드 Q 베타 2 – 헤이, 그 운은 – 지금 갱신 된 SDK 이 릴리스에는 개인 정보 보호 기능이 포함되어 있습니다 테스트 및 피드백, 새로운 방법 거품, foldables 에뮬레이터 등으로 멀티 태스킹을 할 수 있습니다

자세한 내용과 스크린 샷을 보려면, 게시물을 봐 Lustre 오픈 소스 병렬 파일 시스템 많은 양의 데이터에 액세스 할 수 있습니다 매우 빠른 속도와 낮은 대기 시간 그러나 그것을 구성하는 것은 기술적으로 도전적이고 시간 소모적 인 작업입니다 그래서 우리는 배포하기 쉬운 스크립트를 발표했습니다

Lustre 스토리지 클러스터 – 오, 그것도 운율이 – Google Cloud Deployment를 사용하는 Google Compute Engine에서 매니저 시작하려면 게시물로 넘어갑니다 Cloud Healthcare API는 관리 솔루션을 제공합니다 Google 클라우드에서 의료 데이터를 저장하고 액세스하는 방법 플랫폼, 기존 치료 간 중요한 연결 고리 제공 Google Cloud에서 호스팅되는 시스템 및 응용 프로그램 이제 베타 버전으로 제공됩니다 시작하려면 링크가 게시물에 있습니다

최적의 VM 및 메모리 최적화 된 VM 계산 Google Compute Engine에서 사용할 수 있습니다 두 제품 모두 2 세대 Intel Xeon 확장 가능한 프로세서 게시물에 일찍 접속할 수있는 링크가 있습니다 언어 식별 및 스마트 회신 이제 ML Kit에 사용할 수 있습니다 예제 코드와 문서 링크 당신은 그것을 추측했습니다

좋아요, 구독하고 공유하는 것을 잊지 마십시오 Todd Kerpelman이 "개발자 쇼"입니다 보고 주셔서 감사 드리며 다음 주에 다시 보겠습니다 하, 나는 무언가를 얻은 것처럼 미소 지을거야 나는 흥분한다

Google Maps Android API: Heatmaps library

IRIS UY : 안녕하세요, Iris입니다 EMMA YEAP : 저는 Emma입니다

IRIS UY : 그리고 이번 여름에 실습 인턴을 엔지니어링하고 있습니다 Google 시드니에서 EMMA YEAP : 오늘 우리는 이야기 할 것입니다 우리가 여름 동안 일해 온 것에 대해 히트 맵을 Google Maps Android API 유틸리티에 추가했습니다 도서관 IRIS UY :지도에서 히트 맵을 사용합니다

많은 지리적 포인트를 시각화합니다 다른 색상이나 불투명도는 영역을 나타냅니다 포인트의 강도가 다릅니다 일반적으로 높은 강도는 따뜻한 색상, 따라서 이름 EMMA YEAP : 히트 맵

강도 맵은 시각화에 유용합니다 전체 위치를 표시하는 큰 지리적 데이터 세트 트렌드 IRIS UY : 예를 들어 여기에서는 서로 다른 유형의 장소를 보여주는 히트 맵 시드니 도심 주변 장소는 위치가있는 관심 지점입니다 예를 들어 레스토랑이나 상점 또는 관광 명소 EMMA YEAP :이 데모에서는 Google의 레이더 검색을 사용합니다

검색 결과를 얻는 Places API 사용자 입력 키워드 및 렌더링을위한 히트 맵으로서 결과의 위치 사용자가 더 많은 키워드를 입력하면, 이 앱은 다양한 색상으로 더 많은 열지도 레이어를 만듭니다 사용자는 결과를 시각적으로 비교할 수 있습니다 IRIS UY : Places API에 대해 자세히 알아보기 개발자 설명서를 참조하십시오 히트 맵 라이브러리가 포함되어 있습니다

Google Maps Android API 유틸리티 라이브러리의 일부로 제공됩니다 라이브러리 설정 방법에 대한 지시 사항 및 소스 코드를 볼 수있는 위치는 아래에 링크되어 있습니다 EMMA YEAP : 타일 오버레이를 사용했습니다 히트 맵을 표시합니다 타일 ​​오버레이는 일련의 이미지입니다

지도 타일 위에 표시됩니다 이렇게하려면 먼저 타일 공급자를 만들고, 타일 ​​이미지 클라이언트 측을 생성합니다 그런 다음 타일 공급자와 타일 오버레이를 만듭니다 그것을지도에 추가하십시오 IRIS UY : 처음에는 새로운 히트 맵 타일을 만듭니다

제공 업체를 사용합니다 당신은 lat longs 컬렉션을 제공해야합니다 또는 입력 데이터를 나타내는 가중치가있는 long long을 사용합니다 EMMA YEAP : 위도 (Lat)에서 가중치가있는 Lat long을 만들 수 있습니다 길고, 선택적으로 강도 값을 갖는다

무게를다는 데 사용할 수 있습니다 다른 개구부도이 단계에서 구성 가능하며, 히트 맵이 어떤 색을 사용하는지 등 IRIS UY : 색상은 그라데이션 클래스를 사용하여 정의됩니다 그라데이션은 두 개의 배열을 사용하여 만듭니다 색상을 나타내는 정수 배열, 값을 나타내는 float 배열 각 색이 나타내는 것입니다

이 수레는 분수로 표현됩니다 최대 강도의 0에서 1까지 히트 맵의 값 EMMA YEAP : 예를 들어 기본 히트 맵 표시된 값으로 생성됩니다 그라디언트 클래스는 이들을 사용하고 그들 사이를 보간합니다 히트 맵에 사용 된 색상을 생성합니다

자신 만의 그라디언트로 히트 맵을 만들 수 있습니다 그림과 같이 건축업자에게 제공하십시오 IRIS UY : 이제이 공급자를 사용하여 새 타일 오버레이를 추가합니다 귀하의지도에 이것이 맵에 기본 히트 맵을 추가하는 데 필요한 것입니다

EMMA YEAP : 반경, 불투명도 및 그라디언트를 생성 할 때와 생성 한 후에 모두 표시합니다 데이터 세트를 완전히 다른 데이터로 변경할 수도 있습니다 또는 업데이트 된 버전 IRIS UY : 이렇게하려면 관련 집합 x 메서드를 호출 한 다음 오버레이의 타일 케이스를 지 웁니다 새 옵션 값으로 모든 타일을 다시 그립니다

EMMA YEAP : 시청 해 주셔서 감사합니다 IRIS UY : 또한 학생에 대해 더 자세히 알고 싶다면 Google의 기회와 인턴 프로그램, 아래 링크를 방문하십시오

Curso Android. Google API Key. Vídeo 107

안녕하세요? 이 프로그래밍 과정의 전달 우리가 어떻게 볼 것인지 안드로이드 앱을 가져오고 그 쿠키는 사용에 필수적이다 어떤 종류의 Google지도 당신이 수행하는 프로젝트는 중요하지 않습니다

당신은 웹 페이지를 만들고 있습니다 예를 들어 Google지도 포함 귀하의 비즈니스를 찾거나 예를 들면 안드로이드 같은 모바일 애플리케이션 우리 안에서 봉사하게 될 우리 Google지도 작동 능력있게되기위한 필수 조건 이것들을 가져와 열쇠는 가지고있다 Google Google 계정이 소유자입니다 이 모든 창고와 규칙들 게임에 우리에게 계정이 있어야합니다 Google은 매우 문제가되지 않습니다

왜냐하면 if 예를 들어 전자 메일 계정이 있습니다 Gmail을 사용하면 당신이 분명히 사용자와 다른 제품의 암호 Google은 사용자에게 서비스를 제공하지 않고 더 많은 이들 X를 만드는 방법을 보자 패널 액세스로 응용 프로그램 개발자 Google과 우리가 할 수있는 구글 검색 엔진에 들어가기 예를 들어 Android 앱 및 첫 번째지도 이 검색에서 우리에게 제공하는 링크 그 중 하나를 클릭해야합니다 우리가 방문해야합니다 설명 할 모든 과정 오늘 우리가 1 월 24 일에있다

2019 년을 크게 바꿀 수 있음 다음 달 웹 페이지 구조 변경 그래서 무엇 때문에 모르겠다 당신이 보는 것과 일치한다 특히이 비디오를보고있는 경우 기록한 후 몇 개월 또는 몇 년 나 또한 변경되었을 수 있습니다 그들에게 구글을 만드는 게임의 규칙 미래에 당신이 지불해야 할 최고 어쩌면 그렇게하지 않기를 바랍니다 알고있는 Google 계정이 필요했습니다

잘 나는 구글 계정이 가고 있다고 생각한다 필요한 경우 우리는 항상 그것을 방문하지 않는다 첫 번째 링크와 좋은 여기 무엇 때문에 먼저해야 할 일은 다음과 같습니다 이 메뉴는 우리가 우리가 일어난 곳을 떠났다 그것이 말하는 곳으로 직접 가보 죠

우리가 여기에 던지면 조금 더 내려다 본다 빠른 가이드를 말하고 앱을 얻으세요 또한 여기에 우리가 나타납니다 시작 뒤따라야 할 단계 그 사진을 응용 프로그램에 삽입하십시오 Android에 매니페스트 파일 xml이 있습니다 하지만 잘 보겠습니다

최신 동영상은 현재 시작 버튼을 클릭하십시오 그리고 여기에 한 번 페이지 창문을 볼 수있는 것처럼 나오지 않는다 Google지도를 사용하도록 설정하는 팝업 플랫폼을 선택하고 제품 중 하나를 선택하십시오 다음에 나가면지도를 선택하겠습니다 아직도 마우스는 우리에게 거리지도 기능 포함 보기 및 SDK를 포함한 api 안드로이드 용지도는 우리가 가고있는지도입니다

우리를 특별히 찾고 있습니다 지도 선택 버튼 클릭 계속하다 이제 그는 우리에게 프로젝트를 만들 것을 요청합니다 제어판의 프로젝트 구글 개발자는 당신이 그에게 줄 수 있습니다 네가 원하는 이름, 심지어 우리 이름 그들은 기본적으로 하나를 제공합니다 예를 들어 프로젝트에 전화하자

metromadrid 노선 또는 원하는대로 사건을 부르면 이름이 붙을거야 우리가 어디에서 사용할지를 나타내는 대표자 이 API는 우리가이 API를 사용할 때 사용합니다 우리의 안드로이드 응용 프로그램은 우리가 이 이름을 주었고 여기에 좋은 이름을 붙였다 음, 용어를 읽는 기분이 든다면 서비스 및 추가 정보 사실은 제가 여러분에게 말할 것입니다 if 다음을 클릭하십시오

그들은 당신이 볼 수있는 것처럼 우리에게 창조를 요구합니다 청구서 수신 계정으로 문의하지 않습니다 우리가하고있는이 돈 앱과 키를 가져오고 필요한 것이 있습니다 청구서 수신 계정을 만드십시오 해당 버튼을 누릅니다

나는 그런 식으로 지적해야한다 이 모든 창에 액세스 할 수 있어야합니다 우리는 이미 당신이해야 할 Google 개발자 때 Google 페이지에서 달성 당신은 Google 검색에 액세스합니다 우리가 가지고있는 사용자 이름과 비밀 번호로 귀하의 Gmail 계정 전에 음성으로 이 모든 것을 액세스 할 수있는 예 과정은 우리가 지금 당장해야한다 사용자 이름과 비밀번호로 식별 페이지에서 브라우저로 구글 잘 여기, 그는 우리에게 1 단계를 요청한다

우리가있는 두 나라의 우리는 조건을 읽고 동의합니다 나는 그들을 읽지 않을 것이지만 그것은 편리하다 당신은 그들에게 문제 중 하나를 읽는다 우리가 가진 가장 큰 오늘 데이터 보호 및 너가 들었을이 모든 소식 페이스 북과 위반에 대해 개인 데이터는 우리가 그들을 가지지 않고 받아들이 기 때문에 그것을 읽고 그것을 읽는 것이 편리합니다 또한 우리가 원하는 경우 정기적으로 이메일 뉴스의 뉴스 제품 등등, 음, 가자

여기 아무 말도하지 마라 그리고 계속해서, 우리는 동의하고 우리는 계속된다 2 단계 중 2 단계에서 우리는 그들이 우리에게 물어 보는 정보 계정 글쎄요, 당신이나 회사에 대해 말하기 위해 여기에 따라 달라지면 좋겠다 그들은 그들이 코드를 요구하는 주소를 묻는다 주 우편 도시 그리고 눈도 그들이 결국 우리에게 묻기 때문에 우리가 반드시 포함해야하는 카드 번호 벌써 당신에게 우리를 표하는 규칙이라고 말했어

구글, 나는 이것이 당신은 누구에게나 승리하지만 그들은 가지 않을 것입니다 내가 전에 말했어 오른쪽의 여기에 자동 청구 너만 무료 체험 기간 우리는 카드 데이터를 당신이 모르는 로봇이 아닌지 확인하십시오 업데이트하지 않는 한 요금이 부과되지 않습니다 수동으로 유료 버전 계정 우리가 그렇게 잘 할 수없는 일 글쎄, 나는이 정보를 채울거야

나는 동시에 그것을하고있다 내가 그것을 할 때, 데이터 일단 데이터가 채워지면 시작 버튼을 클릭합니다 mindfreak 그 후에 기억하려고 시범 기간의 아무 것도 부탁하지 말고 다음을 클릭하십시오 단추 창문이 나온 직후 나 없이는 아무 것도하지 않은 창발의 어디서나 클릭 한 앱에서이 작업을 수행 할 수 있다고 말합니다 7up 및 Google지도 플랫폼을 활성화합니다

귀하의 API 키를 생성합니다 구현 다음을 클릭하십시오 그리고 나서 여기에 등급은 우리가 이미 발전 할 준비가되어 있고 여기에있다 apicc 그리고 그럼이게 뭐지? 우리는 우리가 도달 한 끝을 찾고있었습니다 그는 여기에 복사 버튼이 있습니다 이 피카를 잃지 않으려 고

언제든지 제어판에서이 앱을 찾고 구글은 우리에게 선택을 줄 것이다 프로젝트는 일단 우리가 이 프로세스를 완료하면 새로운 다른 응용 프로그램에 대한 프로젝트를 상상해 보라 android 또는 웹 프로젝트의 경우 당신은 웹 페이지를 만들고 있습니다 좋은 google지도를 포함하십시오 모든 프로젝트에는 앱과 키가 필요합니다

이걸로 아무 것도 우리가 이미 끝냈다 우리가 아래쪽 버튼을 누르면 이제 apicc와 함께이 작업을 수행하십시오 에서 일련의 작업을 수행해야합니다 에 우리의 응용 프로그램을 공개 다음 동영상은 우리가 앱을 보호해야 함을 새 키 경고 고지 어쩌면 다른 비디오에서 나는 말할지도 모른다 원하는 경우 지금 보호하는 방법 앱을보고 메뉴로 이동합니다

아피스 여기 apis에서지도를 찾습니다 kfor 안드로이드 당신이 세부 정보를 제공 여기 자격 증명으로 가서 거기에 간다 우리는 앱과 잘할 수있는 열쇠를 가지고있다 이 비디오를 그 지점에 남겨 두자 우리가 만나는 사람과 내가 너에게 나는 항상 너를 머물도록 초대한다

까지 다음 배달에주의를 기울이십시오 잘 돌아 간다

How to use Youtube API Library in Android Studio

안녕하세요, 내 안드로이드 비디오 튜토리얼에 오신 것을 환영합니다! 오늘은 Android Studio 애플리케이션에서 YouTube API를 구현하는 방법에 대해 알아 보겠습니다 그래서 시작하자

! 먼저 새 프로젝트를 만들면 "새 Android Studio 프로젝트 시작"을 클릭합니다 이제이 애플리케이션을 처음부터 구현할 예정이므로 빈 활동을 선택하고 다음을 클릭하십시오 여기서는 애플리케이션의 프로젝트 이름을 지정하고 최소 API 레벨을 22, 즉 Android 5

1로 선택합니다 원하는 경우 다른 API 레벨을 선택할 수 있습니다 이제 API 22를 선택하고 마침을 클릭하십시오 그래서 안드로이드 스튜디오가 우리 프로젝트를로드 할 수 있도록 몇 초를 기다려 봅시다 이제 안드로이드 애플리케이션을 구현할 준비가되었습니다 먼저 YouTube API를 만들어야 응용 프로그램에서이 키를 사용할 수 있습니다 이제 Googlecom으로 이동하여 Google 개발자 콘솔을 검색하십시오

이제 Google 계정 자격 증명으로 로그인하십시오 로그인하면 대시 보드가 표시되어 개발자 콘솔에서 YouTube API 키를 생성하는 새 프로젝트를 만듭니다 새 프로젝트를 클릭하면 프로젝트 이름을 지정해야하는 페이지가 열리 며, 이름을 YouTubePlayerAPI로 지정했습니다 이제 CREATE를 클릭하면 새로운 프로젝트가 성공적으로 생성되었습니다 다음 단계에서는 앱 및 서비스를 사용하도록 설정해야하므로 '앱 및 서비스 사용'을 클릭하십시오

서비스를 사용하도록 설정하면 Android 애플리케이션에서 사용할 수있는 다양한 API가 있음을 알 수 있습니다 이제 "YouTube Data API v3"을 선택하고 클릭하여 활성화하십시오 사용 설정하면 자격 증명을 만들라는 메시지가 표시되므로 '크레딧 작성'을 클릭하십시오 'API 키'옵션을 선택하면 API 키의 이름을 지정하고 'Android Apps'로 플랫폼을 선택할 수 있습니다 이제 우리는 Android Studio 응용 프로그램에서 지문을 제공해야합니다

그러면 우리는 안드로이드 응용 프로그램을 API와 연결할 것입니다 따라서 지문을 얻으려면 Android 스튜디오 프로젝트로 이동하여 상단 메뉴에서 '빌드'를 클릭하고 '서명 된 APK 생성'을 선택하십시오 이제 APK를 선택하고 다음을 클릭하고 "새로 만들기"를 클릭하면 새 창이 열립니다 여기서 키를 저장할 경로를 선택해야만 광산을 선택하고 경로를 메모장에 복사 할 수 있습니다 이제 위 / 아래 필드에 비밀번호를 입력하고 "확인"을 클릭 한 후 "다음"을 클릭하십시오

"debug"및 서명 버전을 선택한 다음 Finish를 클릭하십시오 이제 서명 된 APK가 성공적으로 생성되었습니다 이제 터미널로 이동하여 시스템에 저장된 키의 경로로 명령을 복사하여 붙여넣고 Enter 키를 누르고 키 저장소 암호를 제공하고 Enter 키를 누릅니다 이제 위로 스크롤하여 우리가 필요로하는 SHA1 지문 코드를 찾으십시오 이 코드를 복사하여 해당 지문 필드에 붙여 넣으십시오

또한 안드로이드 응용 프로그램의 패키지 이름이 필요하므로 manefist 파일로 이동하여 패키지 이름을 복사하여 패키지 이름 fild에 붙여 넣으십시오 이제 "CREATE"를 클릭하면 API 키가 생성됩니다 이제 우리의 안드로이드 애플리케이션에서이 API 키를 사용할 수 있습니다 이제 API 키를 만들었고 이제 Android 애플리케이션 용 YouTube 플레이어 라이브러리가 필요합니다 YouTube 플레이어 라이브러리를 검색하고 다운로드하십시오

이제 Download 폴더에서 YouTubeAndroidPlayerApi Zip 파일을 추출하고 폴더를 열고 libs 폴더로 이동하여 jar 파일을 복사합니다 이제 안드로이드 프로젝트 구조를 Android에서 프로젝트로 변경하고 jar 파일을 libs 폴더에 붙여 넣으십시오 그런 다음 jar 종속성을 추가해야하므로 왼쪽 상단에있는 파일로 이동하여 프로젝트 구조를 선택하십시오 새 창이 열리면 이제 앱 섹션으로 이동하여 종속성을 선택하십시오 여기에 + 기호를 클릭하고 jar 의존성을 선택하고 libs 폴더에서 jar 파일을 선택한 다음 "OK"를 클릭 한 다음 "OK"를 다시 누릅니다

우리는 이제 프로젝트에 jar 종속성을 추가 했으므로 프로젝트 구조를 Android로 변경합니다 다음 단계에서는 인터넷에 접속하여 매니페스트 파일을 열고 인터넷 사용 권한을 부여 할 수 있도록 인터넷 사용 권한이 필요합니다 이제 코드를 작성할 준비가되었으므로 먼저 Activity XML 파일을 디자인 해 보겠습니다 activity_mainxml 파일로 이동하여 여기에서 몇 가지 사항을 변경합니다

먼저, Constraint Layout을 Relative Layout으로 변경해야합니다 이제 여기에 버튼을 추가하고이를 일치하는 부모로 만든 다음 "Play Video"라는 텍스트 이름을 지정하고이 버튼을 중앙에 배치합니다 다음 단계에서는 사용자 정의보기를 추가하여 YouTube 비디오를 보여줍니다 따라서 팔레트에서 사용자 정의보기를 선택하고 단추 위에 놓습니다 YouTube 동영상을 표시 할 수 있도록 YouTubePlayerView를 선택해야합니다

이제 기본 XML 파일로 이동하여 내용을 변경하십시오 이것이 디자인 부분에서 나온 것입니다 이제 주 활동에 주 코드를 작성합니다 따라서이 구현에서는 클래스가 YoutubeBaseActivity를 확장해야합니다 그런 다음 YoutubeListener를 초기화하고 초기화합니다

이제 onInitializationSuccess 메소드 내부에서 YoutubePlayerloadVideo ( "YouTube에서 URL을 전달해야 함")을 작성합니다 여기에서는 클릭 리스너를 구현하고 그 내부에 YoutubePlayerViewinitialize ()를 입력합니다 이제 우리가 생성 한 API 키로 첫 번째 매개 변수를 전달합니다

개발자 콘솔로 이동하여 API 키를 복사 한 다음 YoutubePayerViewinitialize ( 'API kEY 여기') 메소드에 붙여 넣으세요 두 번째 매개 변수는 유튜브 리스너를 선택하십시오 이제는이 응용 프로그램을 실행하고 결과물을 보도록하겠습니다 이 비디오가 마음에 들면이 비디오를 즐기고, 같이 공유하고, 의견을 남기고, 가입하십시오

시청 해주셔서 감사합니다!

YouTube Developers Live: YouTube Android Player API Overview

[음악 재생] JAREK WILKIEWICZ: 안녕하세요 유튜브 개발자 라이브에 오신 것을 환영합니다

오늘 여러분과 나눌 흥미로운 주제가 있습니다 런던에서 Ross McIlroy가 함께 합니다 Ross, 안녕하세요? ROSS MCILROY: 안녕하세요 감사합니다 어떻게 지내요? JAREK WILKIEWICZ: 잘 지내죠

저는 Jarek Wilkiewicz입니다 유튜브 Developer Relations팀에 있습니다 오늘 유튜브 안드로이드 Player API에 대해서 살펴보고자 합니다 Google I/O 프리젠테이션을 보셨다면, Ross를 알아보셨을 텐데요, 해당 세션에서 발표자로 나왔었습니다 Google I/O 이후로 꽤 바빴을 것 같은데요, Ross

이번 해 초였죠 IO 이후에 어떤 진행 사항이 있었는지 말씀해 주시겠어요? 네 신뢰할 수 있는 테스터와 API를 개선하여 제대로 동작하게 만들고 누락된 기능을 추가하며 모든 사항들이 빠짐없이 포함되어 앱에서 포함시킨 모든 유튜브 콘텐츠를 재생시킬 수 있는 작업을 해왔습니다 최종 다듬기 작업이 진행되고 있고 출시할 준비가 되었습니다 JAREK WILKIEWICZ: 좋습니다

애플리케이션 개발자들에게 API 사용법을 설명하기 위해 데모 세트를 준비하셨죠? 릴리즈에 포함되어 있는 예제 데모를 한두 개 살펴볼까요? ROSS MCILROY: 좋습니다 JAREK WILKIEWICZ: 네 Video Wall부터 시작해 봅시다 지금 바로 시작해 보겠습니다 좋아요

Video Wall은 모든 API 컴포넌트를 조합해서 만들어 볼 수 있는 예제라고 보시면 됩니다 썸네일 형식으로 된 간단한 데모라고 할 수 있죠 썸네일 중의 하나가 나와서 동영상이 됩니다 이 데모는 어떻게 동영상들을 UI안에 포함시켜서 프로그램에 따라서 재생하고 멈추게 하는지 보여줍니다 JAREK WILKIEWICZ: 좋습니다

다음으로, Simple PlayerView 데모도 포함되어 있네요 이 코드를 언제 포함시켜야 하는지 말씀해 주시겠어요? 네 Simple PlayerView는 API를 앱에 동영상을 임베드하여 사용하는 데 가장 간단한 방법입니다 그저 UI에 간단한 Player View를 임베드하는 것입니다 여기 텍스트밖에 없는데, 여러분은 원하는 것은 무엇이든지 넣을 수 있습니다

Player View를 임베드하는 것이 얼마나 간단한지 잘 보여주고 있죠 Simple PlayerFragment도 있습니다 기본적으로 동일한 데모이지만, Player View가 아닌 YouTubePlayerFragment를 사용하였습니다 다른 액티비티 확장이 필요한 경우에 사용하면 됩니다 Player View에서는, API의 일부로 제공되는 액티비티를 확장해야 합니다

PlayerFragment에서는, 원하는 액티비티를 확장하여 Fragment를 임베드하기만 하면 됩니다 JAREK WILKIEWICZ: 좋아요 Custom Player Control은요? ROSS MCILROY: 이것은 UI 컨트롤을 Player의 프로그램 요소로 연결하는 데모라고 할 수 있습니다 버튼으로 재생 또는 멈춤을 할 수 있습니다 여러분이 컨트롤할 수 있는 것이죠

내부에 이벤트 로그가 있어서 등록하거나 대기하는 다양한 콜백을 보여줍니다 예를 들어, 동영상을 재생하거나 동영상이 종료되거나, 멈춤 버튼을 사용자가 눌렀을 때 등입니다 JAREK WILKIEWICZ: 좋습니다 전체 화면 처리 부분에 개선 사항이 있다고 알고 있는데, 개발자들에게 있어서 전체 화면 처리는 언제나 까다로운 부분입니다 Custom Fullscreen Handling 예제에서 잘 보여주고 있죠

그렇습니다 네 디폴트로 전체 화면은 액티비티 위에 있는 대화 상자입니다 잘 동작하기는 하지만 버퍼링과 같은 문제를 수반합니다 사용자 지정 전체 화면은 전체 화면 다루기에 대한 우수 사례를 보여줍니다 그러한 경우에 레이아웃을 전체 화면으로 관리해야 합니다

그러면 버퍼링 없이 아주 부드럽게 전체 화면으로 이동할 수 있습니다 JAREK WILKIEWICZ: 그렇군요 어떻게 전체 화면을 애플리케이션에 포함시키는지 설명해주는 데모가 있습니다 Overlay ActionBar 데모인가요? ROSS MCILROY: 그렇습니다 Overlay ActionBar 데모는 전체 화면 모드에서 액션바가 오버레이 세트를 가지고 있을 때 플레이어 위에 액션바를 어떻게 오버레이할 수 있는지를 보여줍니다 예를 들어 액션바에서 사용자 지정 버튼으로 전체 화면에서 앱을 컨트롤할 수 있게 만들어 줍니다

액션바 이외에는 플레이어 위의 어떤 뷰도 오버레이할 수 있게 만들 필요가 없기 때문입니다 JAREK WILKIEWICZ: 그렇군요 라이트 박스로 동영상 재생이 수행되는 애플리케이션도 있네요 어떤 데모가 그 기능을 보여주나요? ROSS MCILROY: 말씀하신 것은 Standalone Player 데모입니다 동영상을 재생하는 것과는 다른 접근법을 보여주는데요, UI에 임베드하는 것이 아니라 대신 별도의 액티비티를 수행하는 것입니다

따라서 무척 간단하지만 그 만큼 유연성이나 제어권을 가지지 못하죠 라이트박스 모드를 클릭하고 동영상을 재생시키면 동영상이 밑에 있는 액티비티 위에서 보이는 것을 확인할 수 있습니다 따라서 UI와 함께 빠르게 미리보기를 보여주고 싶다면 좋은 선택이 될 수 있겠죠 JAREK WILKIEWICZ: 네 좋습니다

이 예제들이 모두 API 릴리즈에 포함되어 있죠? ROSS MCILROY: 네, 그렇습니다 라이브러리에서 제공하고 있습니다 바로 시작하실 수 있습니다 JAREK WILKIEWICZ: 좋습니다 이제 API를 검토해 봅시다

해당 API와 안드로이드 애플리케이션 연동에 대해서 조금 더 설명해 주실 수 있으신가요? ROSS MCILROY: 물론입니다 zip파일을 다운로드 하면 샘플 앱과 라이브러리 디렉토리가 있는데, API의 JAR를 포함하고 있습니다 애플리케이션에 API를 임베드하려면 JAR를 받아서 프로젝트 루트에 있는 LIBS 라이브러리에 복사하기만 하면 됩니다 클립이 있다면 자동으로 자바 classpath에 추가시켜 줍니다 바로 사용하시면 됩니다

앱에 이미 있습니다 한 가지 필요한 사항은 구글 API 콘솔에 개발자 키를 등록하는 것입니다 이것만 완료하면 API를 초기화하고 사용할 수 있습니다 JAREK WILKIEWICZ: 좋습니다 안드로이드 애플리케이션에 동영상 재생을 포함시키는 데 4가지 다른 방법이 있는데요

해당 API를 설명해 주시겠어요? 모든 정보와 함께 Java docs를 가지고 있는 것으로 아는데요, 주요 클래스에는 어떤 것들이 있는지 간단히 보여주시겠어요? ROSS MCILROY: 물론입니다 마지막으로 보여드린 데모가 Standalone Player였습니다 이것이 Standalone Player를 위한 클래스 입니다 여기 코드를 확인하실 수 있는데요 예제를 가지고 있습니다

Standalone Player를 만다는데는 코드 두 줄이면 됩니다 재생시키고자 하는 동영상 ID를 넣으세요 이 클래스로 만들 수 있는 여러가지 다양한 인텐트로 동영상이나 동영상 목록을 재생하거나 라이트 박스 모드를 사용할 수 있습니다 인텐트를 시작하면, 액티비티를 던지게 되고 동영상이 재생됩니다 아주 간단하긴 하지만 다소 유연성이 낮은 동영상 재생법이죠

본인의 UI에 유튜브 동영상을 임베드하고 싶다면, 세 가지 클래스를 사용할 수 있습니다 PlayerView와 PlayerFragment 그리고 PlayerSupportFragment가 있습니다 모두 같은 방법으로 효과적으로 동작합니다 뷰를 제공하는데, 앱 UI에서 확대할 수 있고 프로그래밍으로 인스턴스화할 수도 있습니다 초기화 메소드를 UI 요소에서 부르고 개발자 키와 onInitializeListener를 넘겨줍니다

API 초기화에 성공하면 onInitializeListener를 통해서 콜백을 받게 됩니다 콜백으로 이 유튜브 플레이어 오브젝트 중에 하나를 얻게되는 것입니다 YouTube 플레이어 오브젝트는 기본적으로 전체 API에서 주요 오브젝트입니다 따라서 PlayerView나 PlayerFragment에서 동영상 재생을 컨트롤할 수 있게 해줍니다 동영상을 로딩하고 대기 행렬을 만들며 재생 목록 요소에서 건너뛰거나 동영상을 찾는 등, API에서 기대할 수 있는 모든 기능을 수행할 수 있습니다

또한 다양한 콜백 이벤트, 재생 이벤트, 플레이어 상태 변경 및 전체 화면 이벤트 등을 등록할 수 있습니다 API를 사용하여 유튜브 동영상을 재생할 수 있는 마지막 방법은 YouTubeIntents 클래스를 통하는 방법입니다 그리고 이는 기본적으로 편의 메카니즘으로 인텐트를 만들어서 유튜브 안드로이드 애플리케이션 자체를 시작하도록 해줍니다 따라서 많은 사람들이 과거에 이 방법을 사용해서 각자의 YouTube URL을 만들어 인텐트로 넘겨줘서 동영상을 재생해 왔습니다 이는 동영상을 전체 화면에서 재생하거나 재생 목록을 재생하거나 사용자의 액티비티를 앱 자체에서 열기 위한 다양한 옵션과 함께 표준화된 방식을 생성합니다

JAREK WILKIEWICZ: YouTubeStandalonePlayer가 시작하기에 가장 간단한 방법이군요 PlayerView와 PlayerFragment만이 더욱 섬세한 사용자 인터페이스를 구축할 수 있습니다 그리고 YouTubeIntents 클래스가 기본적으로 유튜브 앱에서 사용가능한 인텐트를 둘러쌉니다 그리고 애플리케이션에서부터 앱을 불러옵니다 ROSS MCILROY: 네

그렇습니다 JAREK WILKIEWICZ: 좋아요 초기화 프로세스의 일부로서 여러가지 에러를 맞닥뜨릴 수 있다고 말씀하셨는데요 어떠한 에러들이 있으며 이를 해결하기 위한 우수 사례에는 어떠한 것들이 있는지 간단히 말씀해 주시겠어요? ROSS MCILROY: onInitializationFailure 결과값을 받게 되는데요, 유튜브 초기화 결과값과 함께 콜백을 제공하게 됩니다 여기 보이는 enum에서 무엇이 잘못 됐는지에 대한 다양한 옵션을 가지고 있죠

API 서비스에 연결하는데 있어서 다양한 오류가 생길 수 있습니다 만날 수 있는 에러 가운데 유효한 개발자 키값이 아닐 경우 DEVELOPER<u>KEY<u>INVALID나</u></u> INVALID<u>APPLICATION<u>SIGNATURE를 받을 수 있습니다</u></u> 여러분의 애플리케이션 APK가 구글 Play 스토어에 업로드되기 위해 서명된 것과 같은 방법으로 서명되어야 합니다 그리고 그 외에도 복구 가능한 다양한 옵션들이 있습니다 예를 들어, SERVICE<u>DISABLED,</u> SERVICE<u>MISSING나 SERVICE<u>VERSION</u></u> UPDATE<u>REQUIRED 등이 있죠

</u> 이 초기화 결과값 중에 하나를 받으면, 메소드는 복구 가능한 에러를 발행하고 true 값을 반환하게 됩니다 즉 사용자가 API가 동작하게 할 수 있는 방법이 있다는 의미입니다 사용자가 유튜브 앱을 망가뜨렸거나 삭제했을 수도 있습니다 또는 해당 API 서비스를 지원하지 않는 이전 버전을 가지고 있을 수도 있죠 이러한 에러 중 하나일 경우, 유튜브 초기화 결과에서 에러 대화 상자를 받게 됩니다

대화 상자를 만들고 사용자에게 문제를 알려줍니다 예를 들어, 유튜브 앱을 업데이트 해야하는 경우라고 합시다 누를 버튼을 주고, 그 버튼을 누르면 마켓으로 가서 업데이트할 수 있게 해줍니다 액티비티를 반환하면 해당 액티비티 결과에 대한 에러 대화 상자에 넘긴 request 코드를 다시 전달합니다 그리고 성공적으로 해결되었는지를 확인할 수 있습니다 성공적으로 해결된 경우 PlayerView나 PlayerFragment를 다시 초기화합니다

JAREK WILKIEWICZ: 좋습니다 일반적인 에러 두 가지가 모두 개발자키와 연관이 되어있네요 API가 개발자 키를 필요로 한다는 거죠 기존의 플레이어 API와는 다르게 말이죠 실제로 함께 일하는 분들이 해당 예제를 실행시킬 때 이러한 문제를 자주 접하는 경우를 보았습니다

그러한 경우 개발자 키를 바꾸어야 합니다 30 버전 개발자 키를 개발자 콘솔에서 받을 수 있습니다 유튜브 Data API 버전 3에 대해서 더 많이 알고 싶으시다면 apiblogyoutube

com 블로그에 오셔서 추가적으로 정보를 확인하세요 해당 API는 최근에 출시되었습니다 그리고 다른 하나는 사용자가 복구할 수 있는 것으로 API가 수행되는 버전을 확인하는 것과 연관되어 있습니다 애플리케이션 개발자가 사용자와 함께 작업하여 사용자와 협력하여 디바이스에서 API를 수행하는데 필요한 경우 앱을 업데이트할 수 있도록 해주는 부분입니다 해당 API가 안드로이드 2

2 이상의 버전을 지원합니다 그렇죠? ROSS MCILROY: 그렇습니다 22 이상이죠 Froyo부터 Jellybean에 이르기까지 지원합니다

JAREK WILKIEWICZ: 좋습니다 API에 관해서 또 다른 질문이 있는데요, 라이브 스트리밍 재생도 지원하나요? ROSS MCILROY: 라이브 스트리밍 재생도 지원합니다 하지만 유튜브에서 사용되는 동영상 포맷으로 인해서 Honeycomb MR1 이상의 안드로이드 디바이스에서 라이브 동영상을 지원합니다 플랫폼 버전 31이 되겠네요

디바이스 버전이 31 이상이라면, 라이브 동영상을 재생할 수 있을 것입니다 그렇지 않을 경우에는 재생이 되지 않구요 JAREK WILKIEWICZ: 그렇군요 호환성에 관해서 말씀드리자면, 애플리케이션 개발자가 할 수 있는 근본적인 잘문은 "내 디바이스와 라이브러리가 호환되나요" 일 것입니다

라이브러리가 실행되기 위한 선행 조건들을 다 갖추고 있는가? 하는 점이죠 그렇다면 어떻게 라이브러리가 자신의 디바이스를 실제로 지원하는지 알 수 있을까요? ROSS MCILROY: 네 그렇죠 YouTubeApiServiceUtil 클래스를 제공하는데요, 그 안에, isYouTubeApiServiceAvailable 호출이 있습니다 호출을 하면 YouTubeInitializationResult 중 하나를 다시 받게 됩니다

그리고 다시 API가 존재하고 사용 가능하다는 의미의 성공 결과 값을 주거나 사용자가 복구할 수 있도록 해주는 대화 상자를 초기화 할 수 있는 결과 값들 중에 하나를 줍니다 또는 동영상을 재생할 다른 방법을 알아내고 사용할 수 있는 다른 에러가 있을 수도 있습니다 JAREK WILKIEWICZ: 좋습니다 초기화와 관련하여 오래된 안드로이드 디바이스로 작업을 하는 경우 주의해야할 사항이 있나요? 라이브러리 초기화가 얼마나 걸리는지 조금만 설명해 주시겠어요? ROSS MCILROY: 초기화는 비동기식입니다 서비스가 제공되는 액티비티가 돌아가기까지 어느 정도 시간이 걸리기 때문입니다

따라서 오래된 버전에서는, 유튜브 앱이 실행되지 않는다면 1초 정도가 소요될 수 있습니다 실행되는 경우, 플레이어의 UI는 스피너 로딩을 가지게 됩니다 그리고 그것은 UI 스레드를 막지 않습니다 따라서 여러분의 애니메이션이나 그래픽에 영향을 주지는 않을 것입니다 하지만 실행될 때까지 플레이어는 사용할 수 없을 것입니다

오래된 버전의 디바이스에서 해당 부분이 우려되시면 초기화가 성공될 때까지 Player View를 숨기고 그리고 나서 동영상을 로딩하면 됩니다 하지만 보통 요즘 디바이스에서는 Player View가 초기화될 때 200 밀리세컨드 미만일 것입니다 Player View가 초기화되고 나면, 서비스가 동작합니다 매번 연결하는 것이 훨씬 빠를 것입니다 JAREK WILKIEWICZ: 좋습니다

그리고 말씀하셨듯이, 전체 프로세스가 비동기식입니다 따라서 개발자는 주어진 애플리케이션을 위해서 최선의 기회에 초기화를 트리거할 수 있습니다 ROSS MCILROY: 그렇죠 그리고 UI는 서비스를 로딩하는 동안에 첫 번째 동영상을 로딩할 때 버퍼링과 비슷합니다 따라서 끊김없는 트랜지션을 제공합니다

API 초기화와 첫 번째 동영상 버퍼링 사이의 차이를 사용자는 눈치채지 못합니다 JAREK WILKIEWICZ: 좋습니다 시간 내어 주셔서 감사합니다, Ross 이제 가서 명절 쇼핑 하셔야겠네요 그렇죠? ROSS MCILROY: 그렇습니다

API 개발하느라 명절 쇼핑하기에는 너무 바빴네요 JAREK WILKIEWICZ: 그렇군요 명절 이전에 충분한 시간을 가지시길 바랍니다 감사합니다 개발자 라이브를 시청해주신 분들도 감사드립니다

유튜브 개발자 라이브에서 다시 찾아 뵙겠습니다 [음악 재생]

Problemas al grabar vídeo con Android – Te contamos que es el Camera 2 API 🎥📲

Android 모바일 또는 태블릿에 동영상 녹화 응용 프로그램을 설치하고 초점이 작동하지 않거나 노출을 조절할 수 없습니다 이 비디오에서는 Android로 비디오를 녹화 할 때 몇 가지 문제를 알려 드리려고합니다 Camera2 API에 대해 알아야 할 사항 안녕하세요, 휴대 전화로 만든 동영상의 영토 친구, 나는 오스카 온 차이나입니다 elTallerAudiovisualcom에서 및 스페인어로 모바일과 비디오의 첫 온라인 학교 최종 사용자가 신경 쓰지 말아야 할 Camera2 API에 대해 말씀 드리겠습니다

그러나 결국 문제가 발생할 때 우리 일상에 몰래 들어간다 Android 휴대 전화로 동영상을 녹화 할 때 나는 이미 여러 번, 특히 유튜브와 페이스 북에서 직접, 안드로이드 수천 개의 다른 장치가 있기 때문에 매우 중요한 단편화 문제가 있습니다 이로 인해 개발자는 모든 응용 프로그램을 매우 어렵게 만듭니다 모든 장치에서 올바르게 작동합니다 음, 프로세서 이외의 경우, 메모리, 운영 체제의 버전, 또한 다른 변수를 방정식에 추가해야합니다

카메라 2 API는 몇 줄의 코드로 비디오 녹화 및 사진 촬영을위한 카메라 Camera 2 API는 Google Android 프로그래머가 개발했으며 프로그래밍 인터페이스입니다 응용 프로그램 개발자를 허용하는 지침을 포함하는 응용 프로그램 휴대 전화, 모바일 또는 태블릿의 운영 체제와 소프트웨어를 통신하십시오 MWC2015에 Android Lollipop v5로 남았습니다 모든 것이 정상적으로 진행되면 모든 휴대 전화 적어도 안드로이드 마쉬멜로 우 v6는 그것을 통합해야하지만,

이것은 사실이 아닙니다 우리는 파티에 간다 Camera2 API의 통합은 맞춤형 버전으로 제조업체에서 수행해야합니다

그들이 자신의 휴대폰에 설치하는 운영 체제의 당신이 삼성 폰의 안드로이드와 다른 브랜드의 안드로이드를 볼 때, 그들은 같은 버전의 안드로이드이긴하지만 그 모양이 다른가요? 음, 모든 제조업체가 Camera2 API, 각 모델을 완벽하게 통합하지는 않습니다 그것은 다를 수있다 필자는 4 가지 통합 수준에 대해 다음과 같이 언급했습니다 레거시 이는 이전 API Camera1의 기능 만 사용할 수 있음을 의미합니다

최대 제어 한계 자동으로 거의 모든 것 또는 모든 것 제한적

이것은 Camera2 API의 일부 기능이 장치에서 작동 함을 의미합니다 카메라 제어 기능을 거의 사용할 수 없습니다 전체 Camera2 API의 모든 기본 기능을 구현합니다 이것은 Cinema FV5, Filmic 및 기타와 같은 외부 녹음 응용 프로그램, 그들은 전화에 적절한 성능을 줄 수 있습니다 레벨 3, 레벨 3

완전한 팩 API가 제공하는 모든 옵션을 구현하여 캡처를 RAW로 최대화합니다 녹화 앱의 개발자가 최대한 활용할 수있는 방법은 여기에 있습니다 전화, 휴대 전화 또는 태블릿 카메라 물론 다음 질문은 다음과 같습니다 좋아, 내 통합 수준은 어떻습니까? Camera2 API가 있습니까? 대답은 일반적으로 다음과 같습니다 Nexus 또는 Google Pixel이있는 경우 통합이 완벽하므로 운영 체제를 만드는 마크가 적습니다

맞습니까? 나머지 장치 는요? 음, 정상적인 것은 플래그십 모델이나 최상위 레벨에서 전체 레벨로 구현을 찾는 것입니다 각 브랜드 범위의 삼성 S 시리즈, LG G 하지만 눈에는 예외가 있습니다

Huawei, Honor, Sony는 Camera 2 API를 외부 응용 프로그램 용으로 통합하지 않고 모델의 제한된 수준 또는 레거시 수준 Huawei P10과 같은 최고급 모델에서도 당신은 적어도 그 전화기의 네이티브 녹음 응용 프로그램에 감사해야합니다 일반적으로 그들은 당신이 특정 수동 제어 장치에 접근 할 수있게 해준다 내 장치에서 Camera2 API의 통합 수준을 확인하려면 어떻게합니까? Tobias Weis가 만든 2 대의 APPS, Camera2 Probe를 통해 나는 비디오의 설명과 우리가 eltalleraudiovisualcom에 쓴 글에 링크를 남겨 둡니다

목록의 링크도 있습니다 모델별로 구현 데이터가 조금씩 증가합니다 이 비디오에서 우리는 많은 호기심을 유발하는 주제로 탐구 해 왔습니다 Android 휴대 전화로 녹화하는 세계에서 블로그, eltalleraudiovisualcom, 등록 및 액세스에 대한 자세한 내용을 알고 싶다면 휴대 전화가있는 비디오 학교의 무료 콘텐츠에 공유하고 동영상을 공유하십시오

소셜 네트워크에서 그래서 우리는 우리 휴대폰으로 비디오를 만드는 사람들이 매일 더 많아 질 것입니다 다음 비디오까지

ExoPlayer: Adaptive video streaming on Android

안녕하세요 저는 Android 팀의 올리버입니다

저는 Android용 애플리케이션 수준 미디어 플레이어인 ExoPlayer를 설명할 것입니다 Android의 로우 레벨 미디어 API를 기반으로 개발된 ExoPlayer는 Android의 빌트인 미디어 플레이어에 비해 여러 가지 장점을 가지고 있습니다 여러분은 이 플레이어가 DASH와 SmoothStreaming 적응형 재생을 모두 지원한다는 소식이 반가울 것입니다 구글은 이미 ExoPlayer를 YouTube와 Play 무비에 이용하고 있습니다 그리고 이제 이 플레이어의 소스를 공개하여 여러분의 앱에서 이용할 수 있게 했습니다

저는 ExoPlayer 개발의 기반이 된 낮은 수준의 API를 보여드리고 애플리케이션 수준의 미디어 플레이어가 가진 장점을 설명한 다음 ExoPlayer를 여러분의 앱에 통합하는 법을 보여드릴 것입니다 ExoPlayer를 살펴보기 전에 먼저 Android의 미디어 API를 보겠습니다 Jelly Bean 이전 Android에서는 하이 레벨 미디어 플레이어 API가 개발자들이 비디오를 애플리케이션에 연결하는 실질적인 방법이었습니다 이것은 쉽게 사용할 수 있습니다 이 예는 코드 단 두 줄만으로 비디오 재생을 시작합니다

첫째 줄은 플레이어를 만들고 둘째 줄은 재생을 시작합니다 이 코드 두 줄은 비디오 재생의 복잡한 부분을 개발자가 보지 못하도록 거의 모두 숨깁니다 하지만 구현된 미디어 플레이어는 이면에서 비디오를 재생하기 위해 많은 작업을 합니다 스트리밍을 위해 플레이어가 가장 먼저 해야 할 일은 네트워크를 통해 비디오 데이터를 로드하는 것입니다 그 다음으로 데이터는 언제, 얼마나 데이터를 더 로드할지 규정하는 정책에 따라 버퍼링되어야 합니다

비디오를 렌더링하려면 개별 오디오와 비디오 샘플을 샘플이 전달된 컨테이너 형식에서 추출해야 합니다 그 다음으로 이 샘플을 디코딩해야 합니다 마지막으로 디코더 샘플을 화면과 스피커로 렌더링합니다 플레이어는 약간 높은 수준에서 재생 위치와 재생의 현재 진행 여부와 같은 전반적인 상태를 추적해야 합니다 미디어 플레이어 API는 복잡한 부분은 모두 숨기고 있기 때문에 쉽게 사용할 수 있습니다

하지만 이러한 방식은 고급 개발자가 본인의 필요에 따라 기본적인 동작을 수정하거나 확장할 수 없다는 단점이 있습니다 예를 들어 개발자는 버퍼링 정책을 변경하거나 버퍼링된 미디어 데이터를 위한 영구 캐시를 추가할 수 없습니다 이러한 경우를 보다 잘 지원하기 위해 저희는 Android에 로우 레벨 미디어 API를 추가했습니다 Jelly Bean 이후 버전에서는 MediaExtractor API가 네트워킹과 버퍼링, 미디어 추출 기능을 제공합니다 저희는 또한 하드웨어 가속 비디오 디코더를 포함하여 디코더에 대한 접근을 제공하는 MediaCodec API를 추가했습니다

MediaCodec API는 비디오 프레임 렌더링을 직접 지원합니다 그리고 디코딩된 오디오 재생은 Cupcake부터 이용된 AudioTrack API로 처리 가능합니다 이러한 로우 레벨 API는 개발자에게 Android 하이 레벨 미디어 플레이어의 대안을 제공합니다 이 API는 플레이어의 로직이 애플리케이션 코드로 구현되는 동시에 자바로 작성된 애플리케이션 수준 미디어 플레이어의 구축이 가능하도록 합니다 이 코드는 보통 제공된 API를 호출하여 미디어 샘플을 로드 및 추출하고 디코딩하며 렌더링합니다

개발자는 애플리케이션 수준에서 이 기능을 더 많이 구현하도록 선택할 수도 있습니다 예를 들어 네트워킹과 버퍼링, 샘플 추출을 구현하여 개발자는 보다 쉽게 이러한 컴포넌트를 커스터마이즈할 수 있습니다 구글에서 저희는 ExoPlayer라는 애플리케이션 수준의 미디어 플레이어를 자체 개발했습니다 이 플레이어는 DASH와 SmoothStreaming 적응형 재생을 모두 지원하고 DRM 보호 컨텐츠를 재생하며 쉽게 수정하고 확장할 수 있도록 설계되었습니다 구글의 YouTube와 Play 무비 애플리케이션은 이미 최근의 몇몇 Android 장치에서 ExoPlayer를 이용하고 있습니다

그리고 몇 가지 뛰어난 성과를 얻었습니다 예를 들어 Play 무비에서 ExoPlayer를 이용한 DASH 재생은 재생 시작 레이턴시를 65% 줄이는 것으로 나타났습니다 미디어 플레이어보다 리버퍼링 가능성은 40% 줄었고 비디오는 평균 11% 높은 해상도로 제공됩니다 ExoPlayer는 애플리케이션 수준 미디어 플레이어이므로 Play Store 업데이트를 통해 새 기능을 추가하고 기존 기능을 수정할 수 있습니다 그리고 이를 통해 이러한 수치들이 더 개선되기를 바랍니다

저희는 ExoPlayer를 통해 애플리케이션을 개선할 수 있어서 정말 즐겁습니다 하지만 많은 개발자들이 이와 같은 방식을 채택하기에 장벽이 높다는 사실을 알고 있습니다 ExoPlayer는 약 16,000 줄로 구성된 코드입니다 Android의 로우 레벨 미디어 API는 사용하기 어려울 수도 있습니다 따라서 이러한 플레이어를 무에서 창조하려면 상당한 노력이 필요합니다

이러한 이유로, ExoPlayer 소스 공개를 결정했습니다 이를 통해 제삼자 개발자들의 장벽이 낮아지고 아무 것도 없는 상태에서 자체적으로 애플리케이션 수준 미디어 플레이어를 만드는 비용 부담 없이 저희와 같은 수준의 개선 효과를 얻기를 바랍니다 이제 ExoPlayer가 어떻게 설계되었는지 애플리케이션에서 어떻게 활용 가능한지 알아보겠습니다 ExoPlayer는 단일 자바 개체가 아닌 각각 플레이어에 필요한 동작 또는 기능 일부분을 담당하는 여러 가지 모듈 컴포넌트로 구성되어 있습니다 맨 위 수준에는 전반적인 플레이어 상태 관리와 함께 약간의 추가 기능을 담당하는 ExoPlayer 개체 자체가 있습니다

이 개체는 재생 중에 미디어 렌더링을 담당하는 TrackRenderer라는 컴포넌트를 호출합니다 ExoPlayer 라이브러리는 MediaCodec API를 통해 비디오 샘플을 디코딩하고 서피스로 렌더링하는 비디오 재생을 담당하는 TrackRenderer를 제공합니다 이 TrackRenderer는 기초 디코더를 가진 비디오 형식을 지원합니다 보통 H264가 이용됩니다

ExoPlayer 라이브러리는 또한 MediaCodec API를 통해 오디오 샘플을 디코딩하고 AudioTrack API로 재생하게 하는 오디오 재생을 담당하는 TrackRenderer를 제공합니다 오디오 및 비디오 TrackRenderer를 구현하려면 샘플을 얻을 수 있는 SampleSource 컴포넌트가 함께 제공되어야 합니다 네트워킹, 버퍼링, 샘플 추출 동작을 제어할 필요가 없는 개발자를 위해 ExoPlayer 라이브러리는 Android의 MediaExtractor API에 연결된 FrameworkSampleSource라는 구현을 제공합니다 이를 통해 라이브러리는 현재 작동 중인 Android 버전에서 지원되는 모든 컨테이너 형식을 지원합니다 여기에 해당하는 코드를 한 번 보겠습니다

먼저, 비디오가 있는 URI를 제공하는 샘플 소스를 만듭니다 그 다음으로 샘플 소스를 제공하는 오디오 및 비디오 렌더러를 만듭니다 마지막으로 두 렌더러를 제공하고 재생을 시작하는 ExoPlayer 인스턴스를 만듭니다 이것은 간단한 ExoPlayer 사용 방법의 예입니다 이제 좀 더 복잡한 경우인 ExoPlayer의 DASH 및 SmoothStreaming 적응형 재생 지원 방법을 알아보겠습니다

DASH와 SmoothStreaming을 위해 ExoPlayer 라이브러리는 Android의 MediaExtractor API를 완전히 대체하는 컴포넌트를 포함합니다 ChunkSampleSource라는 컴포넌트의 개별 인스턴스는 오디오와 비디오 샘플을 렌더러에 제공하는 데 사용됩니다 각 ChunkSampleSource에는 미디어의 청크, 특히 2초에서 10초 분량의 청크를 구할 수 있는 ChunkSource 컴포넌트가 필요합니다 여기서는 DASHMP4ChunkSource 컴포넌트를 이용하는 DASH 재생을 집중 설명합니다 마지막으로 각 ChunkSource는 데이터 소스를 필요로 합니다

이름에서 알 수 있는 것처럼 DataSource 컴포넌트는 실제 미디어 로딩을 담당합니다 이 경우 네트워크에서 데이터를 이동하는 HTTPDataSource를 이용합니다 DASH 오디오 및 비디오 재생은 보통 별개로 스트리밍되기 때문에 HTTPDataSource 컴포넌트가 하나가 아닌 두 개입니다 다시 돌아가서 코드를 보면 각 컴포넌트에 종속 컴포넌트를 어떻게 삽입했는지 알 수 있습니다 VideoRenderer에는 SampleSource를 삽입하고 SampleSource에는 ChunkSource를 삽입하며 ChunkSource에는 DataSource를 삽입했습니다

종속 항목 삽입을 통해 컴포넌트를 많이 활용하여 플레이어를 만드는 이러한 방식을 통해 애플리케이션 개발자는 컴포넌트의 전체나 일부를 자신의 커스텀 구현으로 쉽게 교체할 수 있습니다 지금까지 보여드린 것은 살짝 간소화한 개체 모델입니다 전체 예에는 컴포넌트가 약간 더 필요합니다 마지막으로 미디어 청크의 버퍼링을 관리하려면 LoadControl이라는 것이 필요합니다 이어서 적응형 재생에 가장 중요한 부분으로 각 ChunkSource는 FormatEvaluator라는 것이 필요합니다

FormatEvaluator는 각 미디어 청크가 요청되기 전에 이용 가능한 형식 중에서 선택을 합니다 여기서는 오디오를 위해 한 가지 형식을 고수하는 고정된 구현을 이용합니다 비디오의 경우 현재 네트워크 상태에 맞춰 버퍼링을 일으키지 않고 사용자에게 최대한 높은 품질을 제공하도록 형식을 선택하는 적응형 구현을 이용합니다 이제 ExoPlayer 라이브러리가 제공하는 표준 컴포넌트로 적응형 재생을 하는 ExoPlayer를 만드는 법을 알게 되었습니다 또한 애플리케이션 개발자가 특정 용도에 맞게 플레이어를 쉽게 커스터마이즈할 수 있음을 설명했습니다

이제 몇 가지 예를 보겠습니다 개발자가 버퍼링된 미디어 데이터를 위한 영구 캐시를 추가하여 사용자가 똑같은 비디오를 두 번 볼 경우 두 번째에는 캐시를 통해 재생되기를 원한다고 가정해봅시다 ExoPlayer 모델에서 이 작업은 쉽습니다 개발자는 플레이어를 만들 때 CacheDataSource 컴포넌트를 삽입하기만 하면 됩니다 CacheDataSource 컴포넌트는 ExoPlayer 라이브러리에서 제공됩니다

하지만 개발자 역시 자유롭게 자신만의 구현을 처음부터 작성할 수 있습니다 마찬가지로 개발자는 다른 버퍼링 동작을 만들거나 비디오 위에 오버레이를 렌더링하는 등과 같이 완전히 맞춤화된 TrackRenderer를 구현하기 위해 기본 LoadControl 구현을 교체할 수 있습니다 적용형 재생에 가장 많이 사용되는 기능으로 CustomFormatEvaluator 삽입 기능이 있습니다 이를 통해 개발자는 자신의 적응형 알고리즘을 시험할 수 있습니다 ExoPlayer를 확장하고 커스터마이즈하는 방법은 이외에도 많습니다

개발자들이 그런 방법으로 무엇을 만들지 정말 기대가 됩니다 정리하면 우리는 Android의 로우 레벨 미디어 API로 Android 표준 미디어 플레이어보다 개발자가 쉽게 업데이트하고 수정 및 확장할 수 있는 강력한 애플리케이션 수준의 미디어 플레이어를 개발하는 방법을 살펴봤습니다 구글은 ExoPlayer를 통해 구글 애플리케이션에 몇 가지 뛰어난 이점을 제공하고 있습니다 저희는 오픈 소스 ExoPlayer를 통해 다른 개발자도 이러한 성과를 거두기를 희망합니다 궁금한 점이나 더 알고 싶은 부분이 있다면 개발자 가이드를 살펴보세요

수많은 유용한 정보와 함께 여러분의 시작을 돕는 멋진 예제를 볼 수 있을 겁니다

DevBytes: Google Fit APIs for Android – Recording and History

안녕하세요 리사 레이입니다 안드로이드를 위한 구글 핏 API에 돌아오신 걸 환영합니다 이전 제 DevByte에서 데이터베이스나 저희 자체 백엔드를 쓰지 않고 사용자 데이터를 저장하고 되찾는 피트니스 앱 작성법을 가르쳐 드리겠다고 약속했었죠 그 동영상에서 핏 API를 설정해서 센서 데이터를 받아와서 실시간 걸음 수를 측정하는 방법을 알려드렸습니다 아직 못 보신 분들은 그걸 먼저 보고 오시길 추천드립니다 저희 앱의 다음 단계는 사용자의 걸음 데이터를 저장해서 기록을 나중에 볼 수 있게 하는 겁니다 여기서 기록 API가 제 역할을 합니다 기록 API는 피트니스 데이터를 구독 기능을 사용해서 자동 저장소를 제공합니다 구글 핏은 백그라운드에서 선택된 피트니스 데이터를 저장하고 앱 구독을 지속시킵니다 센서 API에서와 마찬가지로 구글 플레이 서비스에 접속하는 모든 단계를 거치고 피트니스 API 범위를 요청해야 합니다 접속이 되면 시작할 수 있습니다 구독 호출은 이제는 꽤 익숙해지셨을 겁니다 어느 API를 호출하느냐의 차이만 있죠 기록 API의 구독은 센서 API처럼 listerner로 콜백을 받는 것을 의미하지는 않습니다 사실, 보시면 알겠지만 여기서는 listener는 전혀 관여하지 않습니다 대신 구글 핏이 백그라운드에서 데이터 기록을 시작하여 클라우드 데이터스토어와 동기화되는 걸 의미하는데 이렇게 되면 저희가 추가로 할 작업은 없게 됩니다 차후 필요할 때 찾아 오기만 하면 되죠 하루가 끝날 무렵 그 날이 이전하고 어떻게 다르게 흘러갔는지 사용자가 알고 싶어할 수 있습니다 그래서 저희는 히스토리 API를 사용해서 핏이 저장해 놓은 데이터를 되찾아 오겠습니다 히스토리 API는 피트니스 기록에 액세스를 제공해 주고 앱에서 피트니스 데이터를 입력 삭제 및 읽기를 할 수 있게 해 줍니다 앱은 구글 핏으로 배치 데이터를 가져올 수도 있죠 먼저 되찾아올 데이터의 시간상 처음과 끝의 범위가 필요합니다 예를 들어 지난 한 주간 데이터를 찾는다고 가정해 봅시다 우리는 하루 단위 버킷 사용자 걸음 수를 요구하고 있습니다 지난 한 주 동안 매일마다 얼마나 걸었는지를 알고 싶은 거죠 마지막으로, 데이터 읽기와 저희 요청을 이용해서 히스토리 API를 적용합니다 대부분의 경우, 이를테면 센서를 구독하거나 listener를 추가하거나 할 때 결과는 즉시 돌아오기에 시간대별 결과를 기대할 수 있습니다 하지만 이 경우는 다르죠 핏은 클라우드 데이터스토어에서 결과를 가져오기 위해 네트워크 접속이 필요할 수 있습니다 그래서 결과 콜백을 설정하고 비동기적 결과를 기다려야 합니다 저희가 일별 합계를 요청했기 때문에 데이터 결과는 버킷을 포함합니다 이 경우 각 버킷은 하루에 대응됩니다 각 버킷은 데이터 포인트를 포함한 데이터 세트를 갖습니다 여기 데이터 포인트 사이를 반복하고 그 정보를 출력하는 예시가 있습니다 시작과 끝 시간과 필드 값 쌍처럼 말이죠 우리의 경우는 각 버킷이 하나의 데이터 세트에 하나의 데이터 포인트가 해당 일의 걸음 수 집계를 보여 주고 있습니다 그러므로 저희 앱은 사용자의 하루 걸음 수가 시간에 따라 어떻게 변하는지 그래프를 그릴 수 있습니다 이제 다 하셨습니다 저희 앱은 걸음 수를 보이고 그 수를 기록하고 피트니스 데이터를 되찾아 오는 모든 기능을 안드로이드의 핏 API를 사용해서 모두 처리할 수 있습니다 이건 핏 API가 할 수 있는 여러 작업들의 하나의 예시에 불과합니다 운동 세션, 커스텀 활동 그리고 인텐트를 사용해서 다른 앱을 실행하여 피트니스 데이터를 보여주는 것도 가능성 중 일부일 뿐입니다 저희 웹사이트에 API의 전체 내용이 준비돼 있습니다 하지만 먼저 핏 샘플로 바로 나가서 뛰어 보는 것도 좋을 것 같습니다 시청해 주셔서 감사합니다 여러분이 구글 핏으로 뭘 보여 주실지 기대가 큽니다

Android Meets TensorFlow: How to Accelerate Your App with AI (Google I/O ’17)

[음악 재생] KAZ SATO : 고맙습니다 우리 세션에 참석해 주셔서 감사합니다

"Android Meets TensorFlow " 저는 사토 카즈입니다 저는 Google Cloud Platform 팀의 개발자 대행사입니다 과– HAK MATSUDA : 안녕하세요 좋은 아침

아주 이른 아침에와 주셔서 감사합니다 나는 아침에 사람이 아니기 때문에 나는 조금 졸려있다 어쨌든, 제 이름은 마츠다 하쿠로입니다 나는 안드로이드 게임 개발자 옹호자이다 및 고유 기술

KAZ SATO : 그래서 오늘,이 세션에서, 우리는이 주제들에 대해 토론하고 싶습니다 그래서 이번 세션의 첫 번째 부분은, 나는 AI, 기계 학습, 신경 네트워크, 깊은 학습, Google이 이러한 종류의 기술을 어떻게 사용하고 있는지 우리의 서비스를 구현합니다 그리고 TensorFlow는 무엇입니까? 그것은 건물을위한 오픈 소스 라이브러리입니다 너 자신의 신경망 그리고 나는 Hak에 그 무대를 전달할 것이다

그는 당신이 안드로이드를 어떻게 구축 할 수 있는지 논의 할 것입니다 TensorFlow에서 제공하는 애플리케이션 최적화 방법 마지막으로 미리보기를하고 싶습니다 TensorFlow Lite 및 Android와 같은 새로운 기술 신경 네트워크 API 그렇다면 기계 학습과 신경망은 무엇입니까? 얼마나 많은 사람들이 실제로 신경 네트워크를 시도 했습니까? 몇 명? 오, 너무 많은 사람들! 20 %처럼? 실제로 얼마나 많은 사람들이 신경망을 실제로 사용 했습니까? 모바일 장치에서? 매우 감사합니다 나는 10 명의 사람들을 발견했다

오늘은 TensorFlow를 사용하는 방법을 배우고 싶습니다 기계 학습 모듈 실행 내부 모바일 애플리케이션 너무 많은 유행어가있었습니다 인공 지능, 기계 학습, 신경 네트워크, 또는 깊은 학습 우리는 그 유행어에 대해 들었습니다

지난 몇 년간 차이점이 뭐야? 인공 지능이나 인공 지능 – 당신은 건물과 같은 똑똑한 것을 만들기위한 과학입니다 자율 주행 차 또는 아름다운 그림을 그리거나 음악을 작곡하는 컴퓨터 AI의 비전을 실현하는 한 가지 방법 기계 학습에 있습니다 기계 학습은 당신은 컴퓨터가 스스로 훈련하는 것을 허용 할 수 있습니다 모든 단계를 지시하는 인간 프로그래머, 자체적으로 데이터를 처리합니다

그리고 기계 학습에서 많은 다른 알고리즘 중 하나 신경 네트워크입니다 그리고 2012 년 이래로 우리는 큰 돌파구를 보았습니다 신경 네트워크의 세계에서, 특히 이미지 인식, 음성 인식, 또는 자연어 처리 및 기타 여러 응용 프로그램에 사용할 수 있습니다 그리고 Google에서 우리는 몇 년 동안 신경 네트워크 기술을 개발했다 그렇다면 신경 네트워크 란 무엇입니까? 수학의 함수처럼 생각할 수 있습니다

또는 프로그래밍 언어의 함수 따라서 모든 종류의 데이터를 입력으로 넣을 수 있습니다 일부 행렬 연산 또는 계산 수행 신경 네트워크 내부 그런 다음, 결과적으로 출력 벡터를 얻을 수 있습니다 많은 레이블이나 추측 값을 가지고있다

예를 들어 이미지가 많은 경우, 당신은 분류하기 위해 신경 네트워크를 훈련시킬 수 있습니다 어느 것이 고양이의 이미지인지 또는 개 이미지인지 그리고 이것은 사용의 한 예일뿐입니다 신경 네트워크의 경우 기술을 적용하여 모든 종류의 비즈니스를 해결할 수 있습니다

문제가 있습니다 예를 들어, 게임 서버가 많은 경우, 다음 모든 사용자 활동을 변환 할 수 있습니다, 플레이어 활동, 숫자의 무리로 그들을 변환, 벡터와 같은 신경망을 학습하고 신경 네트워크를 훈련 시키십시오 게임 서버의 플레이어 유형을 분류합니다 예를 들어, 어떤 치욕적 인 플레이어를 찾고 싶다면 자동화 된 스크립트를 사용하여 귀하의 서버에서 속이려고하거나 프리미엄 플레이어를 찾기 위해 신경망을 사용할 수 있습니다 게임 서버에서 점점 더 많은 아이템을 구입할 수 있습니다

그래서 이것은 하나의 가능한 예일뿐입니다 가능한 수천 가지 응용 프로그램 중 Google은 심층 학습 기술을 사용해 왔습니다 100 개가 넘는 스마트 기능 구현을위한 Google 검색, Android, Play, 및 많은 다른 응용 프로그램 예를 들어 Google 검색을 매일 사용하는 경우, 즉, 깊은 학습 기술에 액세스하고 있음을 의미합니다 매일 Google에서 제공합니다

2015 년에 RankBrain을 도입 했으므로, 이는 깊은 학습 기반 랭킹 알고리즘 인 정의 및 순위 지정을위한 신호를 생성합니다 검색 결과 모바일 애플리케이션을 살펴 본다면 Google의 예를 들어 Google 포토는 하나입니다 가장 성공적인 모바일 애플리케이션의 분석과 이해를 위해 깊은 학습을 해왔다 스마트 폰이 찍은 각 이미지의 내용, 그래서 직접 태그 나 키워드를 넣을 필요가 없습니다 대신, 당신은 단지 강아지, 당신의 친구의 이름, 또는 결혼식 파티 가이 콘텐츠를 기반으로 이미지를 찾을 수 있습니다

스마트 회신은 회신 옵션을 표시하는 기능입니다 각 이메일 스레드로 그래서 자연 언어 처리를 사용합니다 신경망 모델에 의해 구동 됨 전자 메일 교환의 컨텍스트를 이해하려고 시도합니다 그리고 지금, 응답의 12 % 이상 스마트 회신 기능으로 생성됩니다

이제 컴퓨터로 이메일을 작성했다고 말할 수 있습니다 더 이상 인간이 아닙니다 Google 번역 앱이 최근에 소개되었습니다 새로운 신경 번역 모델 인 품질, 특히 유창함이 향상되었습니다 번역 된 텍스트의 따라서 가능한 많은 유스 케이스가 있습니다

기계 학습 간의 결합 모바일 애플리케이션, 시작 이미지 인식, OCR, 음성 텍스트 텍스트 음성 변환, 번역 및 NLP가 포함됩니다 특히 기계 학습을 적용 할 수 있습니다 모션 감지 또는 GPS와 같은 모바일 전용 애플리케이션 위치 추적 그리고 왜 당신은 당신의 기계를 운영하고 싶습니까? 학습 모델, 신경 네트워크 모바일 애플리케이션 내부의 모델? 기계 학습을 사용함으로써, 상당한 양의 트래픽을 줄일 수 있습니다 그리고 당신은 훨씬 더 빠른 응답을 얻을 수 있습니다

귀하의 클라우드 서비스에서 원시 데이터에서 의미를 추출 할 수 있기 때문입니다 그게 무슨 뜻이야? 예를 들어, 기계 학습을 사용하는 경우 이미지 인식, 가장 쉬운 방법 이를 구현하기 위해서는 모든 원시 이미지 데이터를 보내야합니다 카메라에 의해 서버로 전송됩니다 대신에 기계 학습 모델을 실행하게 할 수 있습니다

귀하의 모바일 응용 프로그램 내부에서 귀하의 모바일 응용 프로그램 각 이미지에 어떤 종류의 물체가 있는지를 인식 할 수 있고, 그래서 당신은 단지 꽃과 같은 라벨을 보낼 수 있습니다 또는 사람의 얼굴을 서버에 보냅니다 트래픽을 1/10 또는 1/100로 줄일 ​​수 있습니다 상당한 양의 트래픽 절감 효과가 있습니다 다른 예는 모션 디텍션 일 수 있습니다

여기서 모든 움직임, 감각 데이터를 수집합니다 – 원본 이미지를 서버로 직접 보내지 않고, 기계 학습 알고리즘을 사용하여 추출 할 수 있습니다 소위 특징 벡터 기능 벡터는 숫자의 무리 일뿐입니다 특성을 나타내는 100 개 또는 1,000 개의 숫자 또는 모션 센서로부터의 모션의 서명 따라서 100 또는 1,000 개의 숫자 만 보낼 수 있습니다

특징 벡터에서 서버로 그리고 빌드의 출발점은 무엇입니까? 기계 학습으로 구동되는 모바일 애플리케이션? 출발점은 TensorFlow, 머신의 오픈 소스 라이브러리 Google의 정보 TensorFlow는 최신 프레임 워크입니다 기계 학습 또는 인공 지능 기반 서비스 개발을위한 개발 Google에 2015 년 11 월에 오픈했습니다 이제 TensorFlow가 가장 인기있는 프레임 워크입니다

신경 네트워크 또는 세계에서 깊은 학습을 구축합니다 TensorFlow로 얻을 수있는 한 가지 이점 개발의 용이성이다 시작하기가 정말 쉽습니다 몇 줄의 파이썬 코드를 작성할 수 있습니다 또는 수십 줄의 파이썬 코드를 사용하여 신경망을 정의하십시오

혼자서 실제로이 기술은 사람들에게 매우 가치가 있습니다 나는 정교한 수학적 지식이 없기 때문에 나를 좋아한다 배경 그래서 신경망에 관한 교과서를 읽기 시작했을 때, 나는 교과서에 많은 수학 방정식을 발견했다

차별 증식, 역 전파, 및 그라디언트 디센트 그리고 저는 모든 것을 혼자서 구현하고 싶지 않았습니다 대신, 이제 TensorFlow를 다운로드 할 수 있습니다 여기서 한 줄의 파이썬 코드를 작성할 수 있습니다 GradientDescentOptimizer와 같습니다

그 한 줄의 코드는 캡슐화 할 수 있습니다 그래디언트 디센트, 역 전파, 또는 구현 된 기타 최신 알고리즘 Google 엔지니어가 그래서 너는 너 자신을 가질 필요가 없다 신경망을 구현하도록 설정된 기술 기술을 처음부터 또한 TensorFlow의 이점 이식성과 확장 성입니다 예를 들어, 기술로 시작한 TensorFlow를 다운로드 할 수 있습니다

Mac 또는 Windows에서만 사용할 수 있습니다 아주 간단한 샘플의 Hello World 종류로 재생할 수 있습니다 그러나 기술에 대해 진지하게 생각하고 있다면 예를 들어 모델을 처음부터 렌더링하려는 경우 고양이의 이미지를 인식하려면 다음을 사용하십시오 GPU 서버 – GPU는 10 배 또는 50 배이기 때문에 CPU 또는 Mac 또는 Windows보다 빠름 – 모델 훈련 하지만 Google 어스와 같은 많은 대기업 또는 다른 모든 기업에서 클라우드에서 수십 또는 수백 개의 GPU 실행 컴퓨팅 파워가 가장 크기 때문에 깊은 학습 기술에 대한 도전

하지만 여전히 큰 변화는 필요 없습니다 귀하의 TensorFlow 신경망에, TensorFlow는 확장 가능하도록 설계 되었기 때문에 따라서 일단 신경 네트워크를 정의하면, 너는 그것을 배우고, 훈련하고, 사용할 수있다 단일 CPU 또는 다중 GPU에서, 또는 수백 개의 GPU 또는 TPU 또는 Tensor 처리 장치, Google에서 설계 한 ASIC 또는 맞춤형 ADSI입니다 그리고 일단 모델 교육을 마치면, 당신은 모델을 복사 할 수 있습니다 예를 들어, 이미지 인식을 위해, 단일 모델은 100 메가 바이트 데이터, 매개 변수

이러한 매개 변수를 모바일 장치에 복사 할 수 있습니다 Android, iOS 또는 Raspberry Pi와 같은 그리고 TensorFloworg 웹 사이트에 가면, 당신은 임베디드 시스템을위한 샘플 코드를 찾을 수있다 및 휴대 전화 그런 다음 TensorFlow에서 얻을 수있는 이점 지역 사회와 생태계입니다

따라서 실용적인 제작 품질을 원한다면 솔루션을 제공한다면 TensorFlow는 그 최선의 대답 너무 많은 대기업과 개발자가 있기 때문에 심각한 개발을 위해 TensorFlow를 사용하는 사람들, ARM, 이베이, 인텔, 드롭 박스, 트위터 등이있다 그들은 모두 TensorFlow를 사용하고 있습니다 이제는 무대를 Hak에 전달하고 싶습니다 누가 당신이 안드로이드를 어떻게 구현할 수 있는지 이야기 할 것입니다

TensorFlow에서 제공하는 애플리케이션 [박수 갈채] 오 감사합니다 Hak MATSUDA : 고마워요, Kazu Android 부분으로 넘어 갑시다 Kazu가 말했듯이, 우리는 많은 것을 발견했습니다

TensorFlow를 실행하는 유용한 사용 사례 모바일 장치에 대한 추론 우리가 어떻게 통합 할 수 있는지 살펴 보겠습니다 모바일 장치의 TensorFlow 추론 우리가 어떻게 그것을 최적화 할 수 있는지에 대해 설명합니다 TensorFlow는 다음을 포함한 여러 모바일 플랫폼을 지원합니다 Android, iOS 및 Raspberry Pi와 호환됩니다

이 강의에서는 Android와 같은 휴대 기기에 중점을두고 및 IOS TensorFlow 공유 객체를 처음부터 빌드하기 조금 까다 롭습니다 여러 단계를 거치기 시작했습니다 GitHub의 [INAUDIBLE], Bazel 설치, 설치 안드로이드 스튜디오, 안드로이드 SDK 및 NDK, 마지막으로 설정 파일을 편집하는 등의 작업을 수행 할 수 있습니다 그러나 우리에게는 오늘 좋은 소식이 있습니다

이 IO를 발표하면서 방금 JSON 통합을 추가했습니다 그 단계가 훨씬 쉬워집니다 [박수 갈채] 고마워요, 고마워요 빌드 줄에 하나의 선을 추가하기 만하면됩니다 Gradle은 나머지 단계를 처리합니다

도서관 자료실에서 [INAUDIBLE] TensorFlow 공유 객체가 JCenter에서 다운로드되면, 응용 프로그램과 자동으로 연결됩니다 또한 미리 작성된 모델을 가져올 수 있습니다 파일 (예 : 시작, 스타일 화, 등등, 구름 에서뿐만 아니라 iOS에서도 쉽게 사용할 수 있습니다 우리는 Cocoapod 통합을 시작했습니다

지금은 아주 간단합니다 TensorFlow API를 사용하는 방법을 살펴 보겠습니다 Android 유추 라이브러리를 출시했습니다 Java 응용 프로그램 용 TensorFlow를 통합합니다 라이브러리는 Java의 [INAUDIBLE]입니다

네이티브 구현에 성능에 미치는 영향은 최소화됩니다 처음에는 TensorFlow 유추 인터페이스를 만들고, APK의 자산에서 모델 파일을 엽니 다 그런 다음 피드 API를 사용하여 입력 피드를 설정하십시오 모바일에서는 입력 피드가 카메라, 가속도계, 등등

그런 다음 추론을 실행하십시오 마지막으로 결과를 가져올 수 있습니다 거기에 fetch 메소드를 사용합니다 이 통화가 모두 통화를 차단하고 있음을 알 수 있습니다 따라서 작업자 스레드에서 실행하는 대신 작업 스레드에서 실행하려고합니다

API는 길고 오랜 시간이 걸릴 것이기 때문에 메인 스레드, 몇 초 이것은 Java API입니다 물론 일반 C ++ API도 사용할 수 있습니다 당신이 C ++을 사랑한다면 내가하는 것처럼 승인

데모로 넘어 갑시다 이것은 Android에서 실행되는 TensorFlow 샘플입니다 샘플에는 세 가지 모드가 있습니다 첫 번째는 Inception v3을 실행 중입니다 카메라 이미지를 분류합니다

또한 분류 된 얼굴과 양식화 된 사진이 있습니다 견본 이 사진은 카메라 미리보기에 예술적 필터를 적용하고 있습니다 [박수 갈채] 고맙습니다 그리고 데모에서 한 가지 특별한 점 GPU를 사용하여 데모를 약간 수정 한 것입니다

[INAUDIBLE] 계산 쉐이더를 사용하십시오 [INAUDIBLE] 샘플은 CPU를 지원합니다 새로운 최적화 하지만 GPU를 사용하여 그것을 조정했습니다 그리고 이것은 단지 실험을 위해서 였고 재미를 위해서였습니다

그것은 꽤 재미 있었다 그리고 저는 TensorFlow를 GPU에 맞게 최적화하는 방법을 많이 배웠습니다 기본적으로 Android 기기에서 성능 제한 요소 대부분 메모리 대역폭에서 발생합니다 컴퓨팅 자체가 아니라 메모리 대역폭 줄이기 많은 도움이되었습니다 예를 들어, 어떤 [INAUDIBLE] 커널에서, 그것은 32 32 x 32 32 x 4 샘플을 가져 오는 중입니다

하나의 출력 값을 생성하기 만하면됩니다 Compute의 관점에서 엄청난 양의 데이터입니다 셰이더 따라서 메모리 대역폭은 안드로이드에있어 결정적으로 중요합니다 및 모바일 장치 최적화

어쨌든, 모두 TensorFlow 코드를 조정할 수 있습니다 오픈 소스이기 때문입니다 오픈 소스의 아름다움입니다 맞죠? 이제 모바일에 TensorFlow 추론을 통합 할 수 있습니다 내가 아주 쉽게 설명했다

그러나 성능에는 아직 문제가 있습니다 심지어 모바일 장치 성능 상당히 증가했다 클라우드 나 데스크톱보다 컴퓨팅 성능이 떨어집니다 또한 제한된 RAM을 가지고 있습니다 모바일에 소중한 자료

응용 프로그램이 1 기가 바이트의 RAM을 사용한다면, 그때 응용 프로그램은 매우 가능성이 높습니다 시스템 자체에 의해 죽임을 당한다 응용 프로그램이 백그라운드로 이동하면 행복한 상황이 아니지, 그렇지? TensorFlow를 최적화 할 수있는 방법에 대해 살펴 보겠습니다 그래픽, 메모리 사용 공간 감소, 런타임 성능 향상 및로드 시간 개선 잘 이 모델은 Inception v3 모델의 모델입니다 이 모델은 약 91 메가 바이트의 저장 공간을 필요로하며, 2,500 만 가지 매개 변수가 있습니다

그리고 바이너리 크기는 12 메가 바이트 걸릴 것입니다 그것은 거대합니다 그리고 우리는 그래프를 최적화하는 여러 기법을 가지고 있습니다 Graph Transform (그래프 변환)을 사용하여 그래프 고정 도구, 양자화, 메모리 매핑 등 가자

그래프 정지는로드 중 하나입니다 시간 최적화, 변수 노드를 변환 상수 노드에 변수 노드 란 무엇입니까? TensorFlow에서 변수 노드는 다른 파일에서 시작됩니다 그러나 상수 노드가 포함되어 있습니다 그래프 def 자체에서

따라서 변수를 상수 노드로 이동하십시오 여러 개의 파일을 하나의 파일로 연결할 수 있으며, [INAUDIBLE]처럼 그것은 약간의 성능이 될 것입니다 모바일에서 이기고 다루기가 더 쉽다 그렇게하기 위해 우리는 동결 그래프 점 파이썬 스크립트를 준비합니다

그래프 변환 도구는 친구입니다 이 도구는 다양한 최적화 작업을 지원하며, 추측을 위해 사용되지 않는 노드를 스트립하는 것과 같은 하지만 그것은 학습 문구에서만 사용됩니다 추론 노드를 배울 때 필요하지 않습니다 나는 그것이 현재 약간의 작은 단계가 필요할 것이라고 생각한다

어떤 노드가 시작 노드인지 판단한다 어느 노드가 출력 노드인지를 결정한다 따라서이 도구는 시작과 출력이 모두 필요합니다 포인트는 수동으로 지정됩니다 양자화에 대해 이야기 해 봅시다

신경망 작업에는 무리가 필요합니다 매트릭스 특성의, 곱하기의 톤을 의미 추가 작업 현재 모바일 장치는 일부 기능을 수행 할 수 있습니다 전문 하드웨어 예를 들어, [INAUDIBLE] 명령 CPU, 범용 컴퓨팅 GPU, DSP 등에서

대략적으로 모바일 CPU에서는 총 10 ~ 20GB FLOPS GPU를 사용하면 300 ~ 500 기가 플롭스 이상을 달성 할 수 있습니다 큰 숫자처럼 들리지만 여전히 데스크톱 또는 서버 환경 기반 그래서 우리는 최적화를 수행하기를 원합니다 양자화는 기술 중 하나입니다 메모리 사용 공간과 컴퓨터 부하를 줄입니다 일반적으로 TensorFlow는 단 정밀도 부동 값을 사용합니다

입력 및 수학을 위해 또한뿐만 아니라 출력 아시다시피, 단 정밀도 부동 소수점 각각 32 비트 걸린다 그러나 우리는 정밀도를 16 비트, 8 비트로 줄일 수 있다는 것을 발견했습니다 비트 또는 심지어 더 적은 결과를 유지하면서, 우리의 학습 과정에는 자연에 의해 약간의 잡음 그리고 약간의 여분의 소음을 추가하는 것은별로 중요하지 않습니다

따라서 양자화 된 가중치가 최적화입니다 저장 공간의 크기를 줄이면 정밀도가 떨어집니다 그래프 파일의 상수 노드의 값 그러나 양자화 된 가중치 최적화와 함께, 값은 메모리에 확장됩니다 그래프가로드됩니다

그래서 우리에게는 또 다른 최적화가 있습니다 우리는 그것을 양자화 된 계산이라고 부를 수 있습니다 양자화 된 계산으로, 우리는 양자화 된 값을 사용하여 계산 정밀도를 줄일 수 있습니다 예배 규칙서 이것은 첫 번째 메모리 대역폭에 좋으며, 이는 모바일 장치의 제한 요소입니다

또한 하드웨어는 이러한 정밀도 값을 더 빨리 처리 할 수 ​​있습니다 단 정밀도 부동 값보다 그러나 우리는 여전히 열려있는 문제가 있습니다 양자화 된 계산을 수행하기 위해 최대 값과 최소값이 필요하다 양자화 된 값의 범위를 지정합니다 우리는 여전히 훌륭한 해결책이 없습니다

그것은 여전히 ​​수동입니다 그러나 활발한 연구가 진행되고 있으므로 희망적으로이 문제는 곧 해결 될 것입니다 이것은 양자화 된 특성화의 예입니다 최적화는 TensorFlow에서 작동합니다 TensorFlow에는 양자화를 지원하는 일부 연산이 있습니다 예를 들어, 행렬에 대한 컨볼 루션 [INAUDIBLE] 등을 곱하십시오

우리는 그것이 충분히 다루기에 충분하다고 생각합니다 대부분의 추론 시나리오 그러나 우리는 여전히 연산 순서를 양자화하지 않았습니다 아직 값을 양자화하고 값을 역 양자화해야하기 때문에 각 노드의 앞과 뒤 바로 출력 그리고 그래프 변환 도구는 부품을 분석합니다

각 그래프 노드의 때로는 불필요한 양자화 및 역 양자화 된 값 메모리 매핑은 로딩 시간에 대한 또 다른 최적화입니다 이 최적화를 통해 모델 파일 변환되어 직접 매핑 될 수 있습니다 약간있을 수있는 memmap API 사용 일부 Linux 기반 운영에서 성능 최적화 Android와 같은 시스템입니다 또 하나는 실행 파일 크기를 줄이는 것입니다

모바일에서 중요한 주제입니다 모바일 장치에서, 실행 가능한 패키지 크기는 특정 크기로 제한됩니다 Android의 경우 100 메가 바이트, 이진, 그래픽 및 기타 리소스를 포함하여 기본적으로 휴대 장치는 선택한 여러 개의 거의 충분하다 추론 작업을 커버하지만, ops는 학습 프로세스를 사용 누락 따라서 모바일 장치에서 학습을하고 싶다면, 추가 작업을 등록해야합니다

또한 그래프에 일부 사전 등록 된 작업, 또한 그 중 일부를 제거합니다 그렇게하기 위해 선택 등록을 할 수 있습니다 예를 들어, Inception v3의 경우, 선택 등록을함으로써, 원래의 바이너리 크기는 12 메가 바이트였습니다 최적화 후에는 15 메가 바이트로 줄일 수 있습니다

이 최적화를 위해서는 공유를 다시 빌드해야합니다 당신 지역의 물건 따라서 빌드 환경을 구축해야합니다 따라서 이러한 최적화를 통해 Inception v3 그래프 이제 23 메가 바이트와 15 메가 바이트가됩니다

현재 바이너리 크기는 75 % 작아집니다 카즈 돌아 가자 KAZ SATO : Hak 고맙습니다 하크 (Hak)가 언급했듯이, 너무 많습니다

[박수 갈채] 고맙습니다 Hak이 언급했듯이, 많은 팁과 트릭이 있습니다 TensorFlow 모델 최적화 안드로이드 모바일 응용 프로그램으로 짜내다 그리고 바로 지금 할 수있는 일입니다 이러한 기술은 현재 사용 가능합니다

하지만 지금은 조금 이야기하고 싶습니다 가까운 미래에 출시 될 새로운 기술에 대해, TensorFlow Lite 및 Android Neural Network API 등이 있습니다 NNAPI 란 무엇입니까? 신경망 처리를위한 새로운 API입니다 안드로이드 안쪽에, 그리고 안드로이드 프레임 워크에 추가됩니다 새로운 API 추가의 목적 캡슐화하고 추상화하는 것입니다

계층은 GPU, DSP, 및 ISP 최신 스마트 폰은 강력한 컴퓨팅 리소스를 갖추고 있습니다 GPU 또는 DSP와 같은 CPU 이외의 다른 장치 특히 DSP는 거대한 양의 행렬 및 벡터 계산, DSP 나 GPU를 사용하는 것이 훨씬 빠릅니다 신경 네트워크 추론,보다는 CPU를 사용하여

하지만 지금 당장 당신이 그렇게하고 싶다면, 도서관에 직접 가야합니다 하드웨어 공급 업체가 바이너리를 빌드합니다 혼자서 지루한 작업입니다 또한 휴대용이 아닙니다

대신 표준 API를 제공하여 개발자가 하드웨어 가속기를 인식 할 필요가 없다 각 개별 공급 업체로부터 Neural Network API 위에는, 우리는 TensorFlow Lite를 제공 ​​할 것입니다 그것은 새로운 TensorFlow 런타임이 될 것입니다 모바일 및 임베디드 애플리케이션에 최적화되어 있습니다

따라서 TensorFlow Lite는 스마트하고 컴팩트 한 모바일 용으로 설계되었습니다 또는 임베디드 응용 프로그램 또한 Android와 결합되도록 설계되었습니다 NNAPI 그래서 당신이해야 할 일은 TensorFlow Lite로 모델을 작성하면됩니다

결국 모든 이점을 얻게 될 것입니다 당신은 안드로이드 NNAPI에서 얻을 수 있습니다, 하드웨어 가속과 같은 가까운 장래에 오픈 소스로 등장하게 될 것입니다 그러니 계속 지켜봐주십시오 이러한 새로운 기술에 관심이 있다면, 이 QR 코드의 사진을 찍어주세요 Android 용 ML에 대한 설문 조사에 참여할 수 있습니다

의견이나 요청을 할 수있는 곳 새로운 제품을 위해 네, 고마워요 그래서 마지막으로, 아주 흥미롭고 재미있는 것을 보여주고 싶습니다 TensorFlow로 구축 된 실제 응용 프로그램 모바일 및 임베디드 시스템에서 첫 번째 응용 프로그램은 Raspberry Pi에서 실행 중이며 일본인 오이 농부에 의해 사실, 나는이 사진을 찍었다

나는 오이 농장에 가서이 사진을 찍었습니다 그리고 그들은, 당신은 볼 수 있습니다 – 오, 미안 포인터가 없습니다 [CHUCKLE] 그래서 당신은 한 사람을 중간에두고 있습니다 그는 [부적절하다]

그는 2 년 전에 오이 농업을 돕기 시작했습니다 그리고 그는 오이를 올바른 부류로 분류하는 것을 알았습니다 가장 지루한 작업입니다 그의 어머니는 하루 8 시간을 보냈다 길이, 또는 색깔에 기초하여 각 오이를 분류하고, 9 개의 다른 수업으로 그녀를 돕고 싶지 않았어

그래서 대신 그는 TensorFlow를 다운로드했습니다 그 자신의 오이 선별기를 만들었습니다 [박수 갈채] 그가 한 일은 9,000 장의 사진을 찍은 것입니다 다른 오이 중에서 그의 어머니에 의해 분류 된 레이블, TensorFlow 모델을 혼자서 교육했습니다 그리고 그는 $ 1,500을 지출함으로써 스스로로 분류기 로봇을 만들었습니다

그리고 TensorFlow 모델은 Raspberry Pi에서 실행됩니다 접시에 놓은 오이를 감지 할 수 있습니다 그리고 그것은 오이를 9 개의 다른 종류로 분류 할 수 있고, 모양과 색상을 기반으로합니다 그리고 이것은 시스템의 시스템 다이어그램입니다 그래서 세 부분으로 구성됩니다

Arduino Micro는 서버 제어에 사용됩니다 및 모델 그리고 라스베리 파이에는 오이의 사진을 찍을 카메라가 있습니다 접시에 그리고 아주 작은 TensorFlow 모델을 실행합니다

그리고 이것은 실제로 아주 훌륭한 예입니다 작업을 분할하는 방법, 작업 에지 장치 및 클라우드 파트로 기계 학습을위한로드 그는 TensorFlow 전체 세트를 실행했기 때문에 Raspberry Pi 내부의 모델이 너무 무겁습니다 그래서 그는 그것을 두 가지 과제로 나누기로 결정했습니다 따라서 TensorFlow 모델은 Raspberry Pi에서만 실행됩니다

접시에 오이가 있는지 여부를 감지합니다 그리고 접시에 오이가 있음을 감지했을 때만, 그것은 그림을 서버로 보냅니다 그는 더 강력한 TensorFlow를 가지고 있습니다 오이를 9 개로 분류 할 수있는 모델 다른 클래스 흥미로운 또 다른 응용 프로그램을 살펴 보겠습니다

Android 및 iOS에서 실행되는 체조 운동 득점자 그게 뭐야? 사실 모든 일본인은 운동을 잘 알고 있습니다 우리는 전국 라디오 방송을 가지고 있기 때문에 방송 네트워크 그들은 동시에 같은 운동 음악을 연주한다 매일 아침

그리고 수천만 명의 일본인 매일 아침 같은 운동을하고 있습니다 당신은 알고 계십니까? [웃음] 이 응용 프로그램은 – 우리는 그것을 득점자라고 부릅니다 당신은 음악으로 당신의 운동을 해왔습니다 그리고 모션 센서로 모션을 캡처하려면, 그들은 TensorFlow를 사용했습니다 그리고 그들은 TensorFlow 모델을 포착하도록 훈련시킬 수있었습니다

데이터에서 패턴 또는 피쳐 추출 모션 센서에서 인간의 손으로 만든 동작을 평가할 수 있습니다 또한 TensorFlow 컴파일러를 자체적으로 구축했습니다 그래서 그들은 기술을 적용 할 수있었습니다 양자화 또는 근사와 같은 그리고 그들은 TensorFlow를 줄일 수있었습니다

모델을 수십 메가 바이트에서 수 메가 바이트로 모델링합니다 따라서 이것이 생산 품질을 구축하는 핵심 기술이었습니다 TensorFlow 기능을 갖춘 Android 및 iOS 애플리케이션 운동 실황 시범을 보도록하겠습니다 득점자 그럼 내가 여기로 바꿀 수 있을까? 선택할 수있는 응용 프로그램입니다 다양한 종류의 운동

그리고 나는 가장 표준적인 것을 연주 할 것이다 [음악 재생] 그래서 이것은 음악입니다 [웃음] [일본 축구 연발 스코어] [박수 갈채] 나는 잘하고 있니? 그래서 그렇게 그러니 그만하자 [웃음꾼과 박수] [음악 스톱] 충분 해 충분 해 [웃음] 이제 TensorFlow 모델이 시도하고 있습니다 이 운동을 얼마나 잘 수행했는지 평가하십시오

그리고 당신은 막대 차트를 여기에서 볼 수 있습니다 그것이 TensorFlow의 변형입니다 이 애플리케이션 내부의 모델 그것은 진짜입니다 승인? 슬라이드로 돌아가십시오

그것이 우리가 보여주고 싶은 것입니다 이 세션에서는 다음을 포함한 많은 것을 배웠습니다 일본에서 또 다른 이상한 물건, 그런 다음 몇 가지 최적화 기술 TensorFlow 응용 프로그램 구축 용 양질의 안드로이드 및 iOS 애플리케이션을 제공합니다 관심이 있으시면 TensorFloworg로 이동하십시오

시작하기에 많은 자료를 얻을 수 있습니다 그리고 훌륭한 codelab이 있습니다 codelab 웹 사이트에서 정말 고맙습니다 Hak MATSUDA : 고마워

[박수 갈채]

Flutter 1.0 release, ARCore & Sceneform updates, Android Codelabs , Drive APIs, & more!

TIMOTHY JORDAN : 안녕하세요, 저는 Timothy Jordan입니다 The Developer Show의 경우 이것은 가장 멋진 개발자의 매주 업데이트 Google의 뉴스

Flutter Live는 지난 주 런던에서 일어났습니다 Flutter 10은 일부 파트너와 함께 발표되었습니다 벡터 애니메이션 및 지속적인 통합을위한 도구 및 배달 설명의 링크를 확인하십시오

아래의 주요 하이라이트 동영상, 게시물, 및 비디오 재생 목록 AR 코어 16은 현재 더 개선 된 상태로 제공됩니다 보다 현실적이고 설득력있게 만드는 데 도움이됩니다 증강 현실 경험

업데이트는 더 나은 평면 경계 추적 기능을 포함합니다 장면 형태의 몇 가지 조명 개선 Android 개발자 기초 및 Android 고급 과정은 이제 시리즈로 제공됩니다 코드 랩의 링크는 게시물에 있습니다 나는 당신과 공유 할 몇 가지 드라이브 업데이 트가 있습니다

먼저 Google 드라이브 활동 API의 새 버전 확장 된 데이터 모델에서 사용할 수 있습니다 V1은 2019 년 12 월 31 일에 종료됩니다 마이그레이션 가이드가 게시물에 있습니다 또한 팀은 전적으로 집중할 것입니다 드라이브의 기능을 확장하는 방법 REST API – Android API가 폐기 될 것임을 의미합니다

2019 년 12 월 6 일 이것에 대한 이전 가이드도 사용할 수 있습니다 그것의 포스트에서 연결해 클라우드 보안 명령 센터 조직 수준의 가시성 제공 자산, 취약성 및 위협, 이제 베타 버전으로 제공됩니다 이 릴리스에는 다음과 같은 몇 가지 새로운 기능이 포함되어 있습니다

GCP 서비스 전반에 적용 범위 확대, 확장 된 고객 도서관 등 세부 정보 및 스크린 샷이 게시물에 있습니다 우리는 최근에 새로운 장치 명령 기능을 도입했습니다 클라우드 IoT 핵심 관리 서비스의 경우, 높은 주파수, 낮은 대기 시간, 클라우드와 IoT 장치 간의 일시적인 메시징 게시물 세부 정보 및 시작 링크가 있습니다 지난 주, 몬트리올은 가장 큰 기계를 주최했습니다

올해의 학습 컨퍼런스, 연례 컨퍼런스 신경 정보 처리 시스템에 관한 것이다 당신이 그것을 놓친다면 걱정하지 마십시오 우리가 제시 한 모든 작업은이 게시물과 연결되어 있습니다 TF 등급은 확장 가능한 TensorFlow 기반 라이브러리입니다 순위를 매기는 학습

이는 통합 프레임 워크를 제공합니다 알고리즘 순위를 학습하는 최첨단 기술을 포함합니다 pairwise 또는 listwise 손실 함수를 지원하며, 다중 항목 채점, 순위 측정 기준 최적화, 순위를 매기는 편견없는 학습 GitHub 레포에 대한 추가 정보 및 링크 아래 설명에 링크 된 게시물에 있습니다 좋아요, 구독하고 공유하는 것을 잊지 마십시오

저는 The Developer Show의 Timothy Jordan입니다 보고 주셔서 감사 드리며 다음 주에 다시 보겠습니다 휴가 좋은 소리 휴가가 내게 어떤 의미인지 알지? 나는 다른 프로젝트에 종사하면서 잠시 못 들었습니다