新着情報TOP > 2019年 8月

안드로이드 파일 다운 예제

난 당신이 내 프로젝트 Netroid를 사용하는 것이 좋습니다 싶습니다, 그것은 발리를 기반으로. 다중 이벤트 콜백, 파일 다운로드 관리와 같은 몇 가지 기능을 추가했습니다. 이것은 몇 가지 도움이 될 수 있습니다. 지난 주에 이미지를 다운로드했지만 실수로 기기에서 지웠습니다. 해당 이미지를 복구하려면 Chrome을 열고(Chrome이 기본 브라우저인 경우) 왼쪽의 두 번째 아이콘은 아래쪽을 가리키는 화살표여야 합니다. 그것을 누르면, 모든 다운로드가 나타납니다. 동영상과 같은 특정 파일을 찾으려면 다운로드 옆의 드롭다운 메뉴를 탭하고 비디오(또는 원하는 파일)를 탭합니다. 알고 보니 USB 케이블, 블루투스 및 클라우드 동기화와 같은 몇 가지 옵션이 있습니다. 또는 AirDroid 또는 Pushbullet과 같은 앱을 사용할 수 있습니다. 파일이나 사진을 이메일로 전송하는 것이 가장 좋은 것일 수 있습니다. 나는 USB를 통해 태블릿을 연결 내 PC의 화면은 파일을 볼 클릭 말 다음 화면은 그렇게 때문에 파일을 열 수 없습니다 말한다.. 그래서..

그래서 당신은 한 눈에 그것을 실현하지 않을 수 있습니다, 하지만 안드로이드는 실제로 장치의 전체 파일 시스템에 액세스 할 수 있습니다 – 심지어 장치 자체에서. 다운로드한 콘텐츠(이미지, 텍스트 파일, mp3 등)에 액세스해야 하는 경우 홈페이지에서 `다운로드` 옵션을 선택합니다. 거기 당신은 특정 장치에 다운로드 한 모든 파일을 찾을 수 있습니다 – 당신이 삭제하지 않은 것들. 예 위의 코드가 작동합니다. 그러나 진행률 표시줄을 onIn Asynctask의 ProgressUpdate에서 업데이트하고 뒤로 버튼을 누르거나 활동을 완료하면 AsyncTask가 UI로 트랙을 느슨하게합니다. 그리고 다시 활동으로 돌아갈 때 다운로드가 백그라운드에서 실행중이더라도 진행률 표시줄에 대한 업데이트가 표시되지 않습니다. 따라서 OnResume()에서 AsyncTask 실행 백그라운드에서 업데이트되는 값으로 진행률 표시줄을 업데이트하는 타이머 작업을 사용하여 runOnUIThread와 같은 스레드를 실행해 보십시오. 실제로 아주 멋진 안드로이드 쿼리 라이브러리를 사용합니다. 다른 예제에서 볼 수 있듯이 ProgressDialog를 사용하도록 변경할 수 있습니다. 다운로드 프로세스에 대한 자세한 제어가 필요하지 않은 경우 위에 나열된 대부분의 항목을 이미 처리하기 때문에 DownloadManager (3)를 사용하는 것이 좋습니다. 예를 들어, 여기에 폴더를 만들 것입니다 우리가 호출 할 폴더 하나, 예를 들어.

좋은. 이제 폴더가 하나 있습니다. 우리가 그것을 클릭하면, 우리는 좋은 폴더를 엽니 다. 이제 파일 관리자에 더 많은 기능을 계속 추가하고 싶습니다. 파일 이름을 바꿀 수 있기를 원합니다. 한 항목을 길게 클릭하면 수행할 몇 가지 옵션이 표시되기를 원합니다. 우리는 그것을 다시 실행하고 우리는 우리가 긴 뭔가를 클릭 할 때 무슨 일이 일어나는지 볼 수 있습니다. “파일 관리자는 계속 중지됩니다.” 여기서 우리는 단지 그 원인이되는 오류를 찾을 수 있습니다.

다음은 “null 배열의 길이를 얻으려고 시도”하는 오류입니다. null 포인터 예외입니다. 당신은 또한 즉시 `다운로드`응용 프로그램을 통해 장치의 다운로드 파일에 액세스 할 수 있습니다, 이는 당신의 응용 프로그램의 나머지와 함께 휴대 전화의 홈 화면에서 찾을 수 있습니다. 거의 즉각적으로 동일한 네트워크에 있는 경우 브라우저 창에 파일이 표시됩니다. 우리는 이전에이 유용한 서비스를 추천했습니다, 그래서 체크 아웃 우리의 최종 Pushbullet 튜토리얼 Pushbullet는 동일한 파장에 안드로이드와 PC를 두고 같은 파장에 당신의 안드로이드와 PC를 두고 당신이 완벽하게 안드로이드를 유지할 수있는 방법을 알아보십시오 PC와 동기화 – 바탕 화면에 휴대 전화의 알림을 밀어, 파일을 공유, 그리고 훨씬 더! 자세한 내용을 보려면 자세히 알아보십시오.

안드로이드 얼굴인식 예제

얼굴 인식 기술은 이제 스마트 폰 보안의 필수품이며, 신뢰하는 오래된 PIN 및 점점 더 정교한 지문 스캐너와 함께. 지문 스캐너보다 안전하지는 않지만 얼굴 인식과 같은 생체 인식 아이디어는 더 빠르고 사용하기 편리합니다. 따라서 어떤 옵션이 있는지, 어떻게 작동하는지, 보안에 어떤 의미가 있는지 살펴보겠습니다. 분류는 특정 얼굴 특성이 존재하는지 여부를 결정합니다. 안드로이드 얼굴 API는 현재 두 가지 분류를 지원합니다 : 안드로이드 롤리팝은 얼굴 인식을 사용하여 태블릿 이나 휴대 전화의 잠금을 해제 할 수있는 신뢰할 수있는 얼굴 기능을 도입했다. 즉, 그것은 애플의 얼굴 ID로 신뢰할 수 없습니다., 그리고 그들은 당신의 암호를 알고 있는 경우 사람들이 여전히 귀하의 안 드 로이드 장치에 액세스할 수 있습니다. 따라서 타사 개발자는 이 흥미로운 기술을 최대한 활용하기 위해 Android용 얼굴 인식 앱을 만들었습니다. 이 자습서의 비즈니스 끝으로 이동 해 보겠습니다. 우리의 응용 프로그램은 자신의 이미지를 캡처 할 수있는 기능과 함께 몇 가지 샘플 이미지를 포함해야한다. 참고: API는 얼굴 감지만 지원합니다. 현재 모바일 비전 API에서 얼굴 인식을 사용할 수 없습니다. 이 기술이 제공하는 보안 의 속도 수준은 많이 다르며, 많은 안드로이드 OEM은 수년에 걸쳐 그것을 개선하기 위해 노력했다.

전면 카메라의 품질은 얼굴 세부 사항을 추출하는 데 사용되는 알고리즘의 복잡성과 마찬가지로 결정적인 요소입니다. 신경망 하드웨어를 사용하면 고급 스마트폰에서 보다 안전한 알고리즘을 가속화할 수 있습니다. P20 시리즈와 OnePlus의 빠른 잠금 해제 기술이 함께 제공된 화웨이의 360 페이스 잠금 해제를 예로 들어 보세요. 슬프게도, 낮은 비용 모델은 거의 스냅으로. 이제 얼굴 감지 API의 작동 방식을 기본적으로 이해되었으므로 이 섹션에서는 얼굴 감지 API의 기능을 소개하는 짧은 예제를 작성합니다. Android Face Detection자체가 거대한 주제이기 때문에 이 자습서의 범위를 제한하고 랜드마크 감지만 으로 얼굴 분류 기능을 선보일 수 있습니다. 또한 이것은 얼굴 감지의 주요 사용 사례를 해결할 것입니다. 따라서이 안 드 로이드 얼굴 감지 예제에 대 한 우리는 단순히 카메라에서 사진을 찍고 그것에 얼굴 감지를 실행, 모바일 비전 얼굴 감지 API를 사용 하 여.

빌드를 시작하려면, 이 문서의 첫 번째 섹션에서 언급 한 단계를 계속하고 아래와 같이 사진을 찍을 레이아웃을 정의 할 수 있습니다 : 얼굴 인식 (Sokrush) 얼굴 인식 프로그램은 데이터를 보호 할뿐만 아니라 당신과 당신의 즐거움을 친구 나 동료. Sokrush에서 얼굴 인식은 사람의 기분을 이해하는 데 도움이 되도록 설계된 안드로이드용 얼굴 인식 응용 프로그램입니다. 이렇게하려면 관심있는 사람을 촬영해야하며 응용 프로그램은 사람의 이미지를 기반으로 분위기를 분석하려고합니다. 개발자는 주로 엔터테인먼트 목적을 위해이 응용 프로그램을 위치, 당신이 너무 심각하게받은 결과를 하지 말아야 면책 조항. 실제로, 프로그램은 정말 잘 작동합니다. 그것은 상당히 높은 정확도로 얼굴 표정과 인간의 감정을 인식 할 수있는 알고리즘을 기반으로합니다. 결국, 우리가 볼 수 있듯이,이 유형의 응용 프로그램은 “심각한”뿐만 아니라 “재미”가 될 수 있습니다. 3. 얼굴 추적 : 모바일 비전 얼굴 감지 API의 또 다른 매우 강력한 기능은이 얼굴 추적 기능입니다. 그것은 단순히 우리에게 비디오 시퀀스에서 얼굴을 추적 할 수있는 기능을 제공합니다. 다시 한번, 여기 이 얼굴 인식 되지 않습니다 명확히 하 고 싶습니다., 이 기능은 단순히 얼굴 감지에 작동.

아두이노 카메라 예제

당신이 발견하면, OV7670 카메라 모듈은 직렬 데이터와 시계 핀이 있습니다. 즉, Arduino는 I2C를 사용하여 모듈과 통신할 수 있습니다. 또한 모듈은 3.3V에서 작동하므로 Arduino에서 OV7670으로 데이터를 보내려면 전압 분배기를 사용하여 레벨을 낮추는 것이 필요합니다. 열기 ArduCAM_Host_V2.0_Windows 호스트 응용 프로그램.(아두 이노라이브러리ArduCAM예host_appArduCAM_Host_V2.0_Windows). 다음은 Arduino 및 OV7670 카메라 모듈을 사용하여 이미지를 캡처하는 데 사용할 수 있는 코드입니다. 메모리saver.h 파일은 아두 이노 IDE에 의해 인식되기 위해 아두 이노 디렉토리의 ArduCAM 라이브러리 아래에 있습니다. 그 후 도구 ->보드 메뉴에서 아두 이노 IDE, 선택 아두 이노 / 제누이노 우노 보드를 엽니 다. 간단하지만 우아한 TaskCam 3D 인쇄 에디션은 몇 가지 주목할만한 차이점과 일회용 카메라의 느낌을 모방하도록 설계되었습니다. 아두 이노 우노는 수술의 두뇌입니다. TaskCam 쉴드는 배터리 홀스터, SD 카드 슬롯 및 카메라 장치와 함께 사용자에게 “작업”을 게시할 수 있는 화면을 제공합니다. 이 모든 것이 3D 프린팅 케이스 나 자신만의 고안의 인클로저에 깔끔하게 맞습니다! 당신은 c 드라이브에있는 우리의 폴더에 OV7670 카메라 모듈 센서에서 찍은 사진을 볼 수 있습니다.

2003년과 2008년 사이에 디지털 카메라 판매량은 세 배로 증가했으며, 스마트폰이 조류를 전환하고 디지털 카메라가 빠르게 호의를 베풀었습니다. 그것은 그들의 카메라의 힘에 특히 사용자를 대상으로 되 고 왜 전화 볼 쉽게 최고의 스마트폰 카메라: 구글 픽셀, 애플 아이폰, 원 플러스, 그리고 더 최고의 스마트폰 카메라: 구글 픽셀, 애플 아이폰, 원 플러스, 그리고 더 걸릴 수 있습니다. 스마트 폰의 품질 사진, 더 DSLR이 필요하지 않습니다. 그러나 너무 많은 옵션으로, 최고의 스마트 폰 카메라는 무엇입니까? 자세한 내용을 읽어보십시오. 결국, 휴대 할 수있는 하나의 장치만 가지고 다니는 것이 훨씬 쉽습니다. 자동 추적 로봇 팔보다 더 시원한 것은 거의 없습니다. 자동 추적 로봇 팔에 부착 된 폼 다트 건도 그 중 하나입니다. 트로센 로봇의 RobotGeek 라인의 여러 부품을 결합한 이 자동 컬러 트래킹 로봇 데스크 스나이퍼는 아두이노와 함께 픽시 카메라 모듈을 사용하여 표적을 추적합니다.

이동 및 장애물 감지, 드론 및 로봇과 같은 전자 프로젝트에는 이미지를 캡처하기 위한 카메라가 필요합니다. 아두 이노는 사진의 복잡성을 처리 하기에 충분 한 주스 를 가지고 있지 않기 때문에 개인적으로 라즈베리 파이 또는 비글 본 블랙 이러한 종류의 프로젝트에 대 한 사용 하는 것이 좋습니다., 더 많은 그래서, 비디오. 그러나 프로젝트에 고해상도 이미지가 필요하지 않으면 OV7670 카메라 모듈이 적합할 수 있습니다. 이 arduino 카메라 자습서는 이러한 카메라와 VGA 크기의 사진을 캡처하는 데 사용할 수있는 방법을 갖추고 있습니다. 1. 아두 이노 우노 보드와 USB2. OV7670 아두 이노 카메라 센서 모듈 STM323.10K 저항X 24. 4.7K 저항기 X25. 브레드 보드 카메라 구조에 도착하기 전에, 아두 이노 지원 비디오 카메라 모듈의 몇 가지를 살펴 보자.

당신은 쉽게 주문하고 프로젝트에 사용할 수 있습니다. 당신이 직면 할 수있는 한 가지 문제는 Arduino가 가상 COM으로 전송되는 모든 것과 별도로 첫 번째 바이트를 수신한 다음 남아있는 모든 것을 수신한다는 것입니다. 해결책은? 각 바이트를 읽은 후 수면 2. 그게 전부에요! 이것은 몇 가지 명확한 장점이 있습니다. USB 웹캠은 쉽게 사용할 수 있으며, 스펙트럼의 예산 끝에 많은 USB 비디오 클래스 장치가 있습니다. 따라서 이 프로젝트는 아두 이노 플랫폼에서 카메라를 수리하려는 모든 사람들에게 완벽한 프로젝트로, 비용이 많이 드는 부품을 구입하지 않고도 사용할 수 없습니다.

정규분포 예제

분포의 평균은 그래프의 중심 위치를 결정하고 표준 편차는 그래프의 높이와 너비를 결정하고 법선 곡선 아래의 전체 면적은 1과 같습니다. 표준 편차는 가변성의 척도입니다. 정규 분포의 너비를 정의합니다. 표준 편차는 값이 떨어지는 경향이 평균에서 얼마나 멀리 결정합니다. 관측값과 평균 사이의 일반적인 거리를 나타냅니다. 위에서 보았듯이 정규 분포는 매개 변수 값에 따라 여러 가지 모양을 가지고 있습니다. 그러나 표준 정규 분포는 평균이 0이고 표준 편차가 1인 정규 분포의 특별한 경우입니다. 이 분포를 Z 배포라고도 합니다. 또한 경험적 규칙을 사용하여 x가 2보다 클 확률을 근사화할 수도 있습니다. 분포의 약 95%는 -2와 2 사이이며, 이는 약 5%가 -2 미만이거나 2보다 크다는 것을 의미합니다. 그 중 절반, 또는 2.5%, 또는 0.025, 하이 엔드에 있을 것입니다. 그것은 정확 하 게 정확 하 게 되지 않았을 것 이다, 하지만 그것은 가까이 되었을 것 이다, 그리고 부팅을 찾을 조금 쉽게. 서로 다른 모양에도 불구하고 모든 형태의 정규 분포는 다음과 같은 특성 특성을 갖습니다.

우리는 정규 분포의 두 반쪽이 서로의 미러 이미지라는 것을 알고 있습니다. 따라서 간격 영역이 -0.65 및 +0.65인 경우 0에서 +0.65까지의 범위는 48.43/2 = 24.215%입니다. 또한 모든 점수가 0 미만인 영역이 절반(50%)임을 알고 있습니다. 분포의. 안녕하세요 짐이 주셔서 감사합니다. 숫자가 얼마나 커서 정규 분포가 발생합니까? 왕자의 집에 신데렐라가 남긴 유리 슬리퍼가 다른 여자의 발에 맞았다면 어떤 일이 일어났을지 궁금했습니까? 그는 결국 다른 여자와 결혼했을 것입니다. 그것은 우리 모두가 이제까지 우연히 만난 재미있는 가정 중 하나였습니다. 미국에서 수집 된 데이터에 따르면, 대부분의 여성의 물리적 메이크업이 거의 동일하기 때문에 크기별 여성 신발 판매는 일반적으로 분포됩니다.

샘플 문제: 일반적인 학기 동안 학생 급여에 대한 정규 분포 곡선을 그립니다. 학생 급여의 평균은 $6,800이고 표준 편차는 $2,500입니다. $7,300에서 $9,000 사이의 급여에 해당하는 그래프의 영역을 음영. 표준 노멀 모델입니다. 이미지 제공: 버지니아 대학교. 이것은 조금 까다롭습니다. 한 가지, 그것은 당신이 데이터로 무엇을 원하는지에 따라 달라집니다. 가설 검정에 대해 이야기하는 경우 샘플 크기가 충분히 큰 경우 일반 테스트와 비정상 데이터를 사용하는 경우가 많습니다.

“충분히 큰”정말 도 그 큰 되지 않습니다. 비정규 데이터에 비매개 테스트를 사용할 수도 있습니다. 고려해야 할 몇 가지 문제가 있습니다. 데이터가 배포되는 방법을 파악하는 한 가지 방법은 그래프로 데이터를 그리는 것입니다. 데이터가 균등하게 분산되면 종 곡선이 생길 수 있습니다. 종 곡선은 양쪽 꼬리에 있는 점의 백분율이 작고 곡선의 안쪽 부분에 더 큰 백분율이 있습니다. 표준 일반 모델에서는 데이터의 약 5%가 “꼬리”(아래 이미지에서 어두운 주황색)에 속하며 90%는 그 사이에 있습니다. 예를 들어, 학생들의 시험 점수의 경우, 정규 분포는 매우 낮은 점수를 받는 학생의 2.5%와 매우 높은 점수를 받는 2.5%를 보여줍니다. 나머지는 중간에있을 것입니다; 너무 높거나 너무 낮지 않습니다.

표준 정규 분포의 모양은 다음과 같습니다 짐, 그것은 정규 분포가 고유하고 완벽에 따라 하나입니다 내 이해 68 95 99.7%.

컴활1급 실기 예제

1. 함수는 개체입니다 : 파이썬 함수는 일류 객체입니다. 아래 예제에서는 변수에 함수를 할당합니다. 이 할당은 함수를 호출하지 않습니다. 외침으로 참조되는 함수 객체를 취하고 그것을 가리키는 두 번째 이름을 만듭니다. 세 가지 클래스가 무엇인지 이해한다면, 당신은 당신의 자신의 예를 생각해 볼 수 있습니다! 차이점을 이해하지 못하는 경우, 그렇게 할 때까지 계속 작업하십시오 . 두 번째 클래스 레버에서는 부하를 작은 거리로 올리기 위해 먼 거리를 이동합니다. 암 길이를 적재하는 노력(힘) 암 길이의 비율이 증가함에 따라, 제2클래스 레버의 기계적 이점이 증가한다. 수레에서 하중이 휠에 가까울수록 기계적 이점이 커진다. 호두까기 인형은 또한 두 번째 클래스 레버의 예입니다. 가위와 가위는 풀크럼이 중앙에서 약간 떨어져 있더라도 일류 레버입니다. 중앙 집중식 풀크럼은 여전히 한쪽 끝에 있는 핸들을 사용하여 한쪽 끝에 있는 이중 막대를 올리고 낮출 수 있는 피벗 포인트 역할을 합니다.

가위는 재료를 잘라내거나 분리하기 위해 힘을 사용하는 레버의 예입니다. 인체에서 뼈는 레버를 형성하고 풀크럼은 뼈가 피벗 점 주위를 이동할 수있는 관절입니다. 노력의 힘은 근육에 의해 제공되고 근육의 힘줄이 레버 역할을하는 뼈에 부착 되는 지점에서 레버 시스템에 적용됩니다. 해부학 적 레버 시스템의 하중 또는 저항은 특정 경우에 따라 다르지만 항상 뼈에 의해 부담되거나 이동된 질량을 나타냅니다. 예를 들어, 목의 아틀란토 후두 관절은 머리의 질량을 지니고 있으며, 팔꿈치 관절은 팔뚝과 손에 들고 있는 모든 질량을 아령처럼 움직입니다. 레버는 회전을 자유롭게 회전하거나 피벗을 이동하는 능선이있는 나무 판처럼 간단 할 수 있습니다. 가장 일반적이고 인기있는 레버는 많은 놀이터에서 찾을 수 있습니다 : 시소 또는 티터 – 토터. 그들은 모든 곳에서 발견되며 가장 유용한 간단한 기계 중 하나입니다. 레버에는 세 가지 종류가 있습니다. 아래 이미지는 퍼스트 클래스 레버라고도 하는 클래스 원 레버의 예입니다. 이 이야기를 시작하면 당신은 그것에 충실해야하고 때로는이 어려울 수 있습니다.

예를 들어, 무엇을 합니까: 글쎄, 일류 레버는 풀크럼이 무게와 에너지 또는 무게를 움직이는 힘(예: 손) 사이에 있는 막대기입니다. 한쪽을 밀거나 당기는 것, 다른 쪽을 밀거나 당기는 것, 중간에 고정된 지점이 있습니다. 따라서 일류 레버의 순서는 힘 풀크럼 무게입니다. 3. 함수는 다른 함수를 반환 할 수 있습니다 : 함수는 객체이기 때문에 다른 함수에서 함수를 반환 할 수 있습니다. 아래 예제에서 create_adder 함수는 adder 함수를 반환합니다. 세 번째 클래스 레버와 세 번째 클래스 레버 노력은 부하와 풀크럼 사이에, 예를 들어 바베큐 집게에서.

자바 애니메이션 예제

첫 번째 예제에서는 스윙 타이머를 사용하여 애니메이션을 만듭니다. 이것은 Java 게임에서 개체를 애니메이션하는 가장 쉬운 방법이기도 하지만 가장 효과적인 방법입니다. 5개의 상수가 정의됩니다. 처음 두 상수는 보드 너비와 높이입니다. 세 번째와 네 번째는 별의 초기 좌표입니다. 마지막 하나는 애니메이션의 속도를 결정합니다. Java에서 스레드를 사용하면 자체 스레드에서 실행되는 applet (또는 응용 프로그램)의 일부를 만들 수 있으며 이러한 부분은 다른 것을 방해하지 않고 자체적으로 모두 즐겁게 실행됩니다. 스레드 수에 따라 결국 시스템에 세금을 부과하여 모든 스레드가 느리게 실행되지만 모두 독립적으로 실행됩니다. 프레임 워크는 애니메이션의 많은 유형을 허용 하기에 충분히 일반적 이어야 한다 -페이드, 크기 변경, 등… – 스윙 구성 요소의 모든 유형. 내가 구축 한 프레임 워크는 인터페이스의 간단한 구현을 통해 일반화됩니다.

그 중심에는 스윙 타이머와 콜백 시스템이 있습니다. 아래에 게시된 SwingAnimator 클래스는 이벤트의 실제 타이밍을 처리하며 SwingAnimatorCallback 인터페이스를 호출하여 실제 애니메이션을 처리합니다. Java에서와 같이 멀티스레딩은 동일한 프로그램의 여러 부분이 서로 간섭하지 않고 동시에 병렬로 실행될 수 있음을 의미합니다. 각 스레드는 각 버스에서 서로 다른 작업을 진행하는 여러 버스와 같습니다. 두 번째로 필요한 것은 다시 그릴 실제 영역을 추적하는 방법입니다. 애니메이션의 각 프레임에 대해 드로잉 영역의 왼쪽 및 오른쪽 가장자리가 모두 변경됩니다(한 쪽은 새 타원형을 그리고 다른 쪽은 이전 프레임에서 남은 타원형의 비트를 지우기 위해) 이 두 x 값을 추적합니다. 에서는 왼쪽과 오른쪽 모두에 인스턴스 변수가 필요합니다. 애니메이션의 각 프레임으로 드로잉 영역의 가장자리를 업데이트하는 문제는 다시 그리기() 호출할 때마다 개별 해당 페인트()가 없을 수 있다는 것입니다. 시스템 리소스가 꽉 들어오면(시스템에서 실행중인 다른 프로그램 또는 다른 이유로 인해) paint()가 즉시 실행되지 않을 수 있으며 페인트()에 대한 여러 호출이 화면의 픽셀을 변경하기 위해 자신의 차례를 기다리는 대기열에 대기할 수 있습니다. 이 경우 모든 호출을 순서대로(및 항상 뒤처질 수 있음)으로 만드는 대신 Java는 가장 최근에 페인트()를 호출만 실행하고 다른 모든 호출을 건너뜁니다. 내가 자바를 본 첫 번째 일은 애니메이션이었다 : 거기에 큰 빨간 안녕! 오른쪽에서 왼쪽으로 화면을 가로 질러 실행됩니다. 그 단순한 형태의 애니메이션조차도 저를 멈추고 “정말 멋지다”고 생각하기에 충분했습니다.

페인트를 호출하지 마십시오자신의 코드에서 직접 구성 요소. 마찬가지로 그래픽 개체를 인스턴스화하지 마십시오- Java GUI 시스템은 코드에 필요한 그래픽 개체를 자동으로 전달합니다. 위의 예제에서 애니메이션은 이 클래스의 페이드인 및 페이드아웃 메서드를 호출하기만 하면 됩니다. 세터 메서드 setIncrement 및 setAnimationSpeed 및 setAlpha 메서드를 사용하여 초기 가시성을 설정하여 필요에 따라 타이밍을 조정할 수 있습니다. 이 클래스는 사용자 지정 도면에만 해당하지만 구성 요소의 페인트 방법을 신중하게 재정의하여 자식 구성요소를 애니메이션할 수 있습니다. 자세한 내용은 “GUI 스레드에 대한 교차 스레드 호출”의 Comp310 Java 리소스 페이지를 참조하십시오. Java 애플릿에서 깜박임을 방지하는 두 가지 주요 방법이 있습니다: 오늘 내내 애니메이션을 만들거나 일종의 동적 움직임을 수행하는 실제 애플릿의 많은 예제와 함께 작업할 수 있습니다. 애니메이션 믹스에 대해 알아야 할 부분이 하나 더 있으며, 그 스레드입니다. 이 단원의 후반부 (그리고 18 일째에 더 자세히 설명하는 “멀티 스레딩”)에서 스레드에 대해 자세히 설명하려고하지만 지금은 기본 아이디어가 있습니다 : Java 프로그램에서 지속적으로 실행되고 많은 처리 시간을 차지하는 모든 것은 i에서 실행되어야합니다. ts 자신의 스레드.

유닉스 파이프 예제

파이프는 두 개 이상의 명령을 결합하는 데 사용되며, 이 경우 한 명령의 출력은 다른 명령에 대한 입력 역할을 하며 이 명령의 출력은 다음 명령에 대한 입력으로 작동할 수 있습니다. 또한 두 개 이상의 명령 / 프로그램 / 프로세스 사이의 임시 연결로 시각화 할 수 있습니다. 추가 처리를 수행하는 명령줄 프로그램을 필터라고 합니다. 유닉스의 `작은 조각, 느슨하게 결합`철학을 설명합니다. 파이프는 한 명령의 출력이 다음에 입력 역할을하도록 두 개 이상의 명령을 사용할 수 있습니다 리눅스에서 명령입니다. 즉, 각 프로세스의 출력은 파이프라인과 같은 다음 프로세스에 대한 입력으로 직접 입력됩니다. 기호 `|`는 파이프를 나타냅니다. 이 장에서는 유닉스의 파이프 및 필터에 대해 자세히 설명합니다. 한 프로그램의 출력이 다음 프로그램의 입력이 되도록 두 명령을 함께 연결할 수 있습니다. 이러한 방식으로 연결된 두 개 이상의 명령이 파이프를 형성합니다.

파이프는 동시에 두 개 이상의 명령을 매시업하고 연속적으로 실행하는 데 도움이됩니다. 당신은 순식간에 복잡한 작업을 수행 할 수있는 강력한 명령을 사용할 수 있습니다. 다음은 문자열 “fred”가 포함 된 유닉스 시스템에서 실행되는 모든 프로세스를 나열하는 방법입니다 : 명령이 내 바탕 화면에 응답하지 못했다고 가정 해 봅시다. 나는 유닉스의 조금을 알고, 그래서 내가해야 할 일은 명령을 죽이는 실행하는 것을 알고있다. PID를 검색하기 위해, 나는 PS 또는 상단 또는 내 유닉스 분포가 나에게 준 어떤 도구를 사용할 수 있습니다. 그러나 어떻게하면 하나의 명령으로이 작업을 수행 할 수 있습니까? 파이프는 리눅스와 다른 유닉스와 같은 운영 체제에서 추가 처리를 위해 한 명령 / 프로그램 / 프로세스의 출력을 다른 명령 / 프로그램 / 프로세스로 전송하는 리디렉션 (다른 대상으로 표준 출력의 전송)의 한 형태이다. 유닉스/리눅스 시스템을 사용하면 명령의 stdout을 다른 명령의 stdin에 연결할 수 있습니다. 파이프 문자 `|`를 사용하여 그렇게 할 수 있습니다. “grep”이라는 이름은 ed(유닉스 라인 편집기) 명령 g/re/p에서 유래되었으며, 이는 “정규식을 전역적으로 검색하고 전체적으로 정규식을 검색하고 그 를 포함하는 모든 줄을 인쇄”한다는 의미입니다. 이제 파이프를 사용하여 정렬된 고유한 단어 목록을 인쇄하는 예제를 살펴보겠습니다.

6 / 6« 先頭...23456