KR101556831B1 - 애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체 - Google Patents
애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체 Download PDFInfo
- Publication number
- KR101556831B1 KR101556831B1 KR1020130166650A KR20130166650A KR101556831B1 KR 101556831 B1 KR101556831 B1 KR 101556831B1 KR 1020130166650 A KR1020130166650 A KR 1020130166650A KR 20130166650 A KR20130166650 A KR 20130166650A KR 101556831 B1 KR101556831 B1 KR 101556831B1
- Authority
- KR
- South Korea
- Prior art keywords
- permission
- application
- computer device
- user terminal
- permissions
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100)은 컴퓨터 장치가 안드로이드 애플리케이션 개발 툴(tool)을 실행하는 단계(110), 컴퓨터 장치가 애플리케이션 개발 툴에서 제공하는 함수 중 사용함수에 대한 선택 명령을 입력받는 단계(120), 컴퓨터 장치가 퍼미션 테이블을 이용하여 사용함수가 사용하는 하나 이상의 퍼미션을 결정하는 단계(130) 및 컴퓨터 장치가 결정한 퍼미션에 대한 코드를 퍼미션 파일에 삽입하는 단계(140)를 포함한다.
Description
이하 설명하는 기술은 안드로이드 애플리케이션 제작을 위한 퍼미션을 입력하는 방법 및 안드로이드 애플리케이션을 제작하는 방법에 관한 것이다.
최근 스마트폰 등과 같은 모바일 단말의 등장과 함께 스마트폰에서 실행되는 다양한 애플리케이션이 등장하고 있다. 애플리케이션이 위치정보 등의 디바이스 자원에 접근하기 위해서는 접근할 수 있는 퍼미션(permission, 권한)을 필요로 한다. 일반적으로 스마트 디바이스용 애플리케이션은 크게 구글(Google)의 안드로이드(Android), 애플(Apple)의 iOS, 마이크로소프트(Microsoft)의 윈도우즈(Windows)의 3종류의 플랫폼(platform)에서 구동되는 것으로 분류할 수 있다.
안드로이드 애플리케이션을 예로 들자면, 개발자는 해당 애플리케이션이 요구하는 퍼미션을 수동으로 일일이 특정 파일에 삽입해아 한다.
개발자는 수동으로 퍼미션을 삽입하기 때문에 일반적으로 사용하지 않아도 되는 퍼미션까지 일괄적으로 삽입하는 경향이 있다. 또한 현재 애플리케이션 시장 상황은 사용자의 의사와 관계없이 개발자가 요구하는 퍼미션을 사용자가 수락해야만 해당 애플리케이션을 설치할 수 있다. 이러한 애플리케이션 시장 환경은 의도적으로 사용자 정보를 추출하거나 사용자 단말을 해킹하기 위한 악성 애플리케이션(악성 코드)이 손쉽게 사용자 단말에 설치될 수 있는 환경을 만들고 있다.
이하 설명하는 기술은 개발자가 애플리케이션을 제작하는 과정에서 반드시 필요한 퍼미션만을 개발자에게 제공하고자 한다.
이하 설명하는 기술의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
애플리케이션 개발을 위한 퍼미션 입력 방법은 컴퓨터 장치가 애플리케이션 개발 툴을 실행하는 단계, 컴퓨터 장치가 애플리케이션 개발 툴에서 제공하는 함수 중 사용함수에 대한 선택 명령을 입력받는 단계, 컴퓨터 장치가 퍼미션 테이블을 이용하여 사용함수가 사용하는 하나 이상의 퍼미션을 결정하는 단계 및 컴퓨터 장치가 결정한 퍼미션에 대한 코드를 퍼미션 파일에 삽입하는 단계를 포함한다.
퍼미션 테이블은 애플리케이션 제작에 사용되는 모든 함수와 상기 모든 함수 각각이 요구하는 퍼미션을 매칭한 것이다.
퍼미션은 애플리케이션이 사용자 단말에 저장된 데이터 사용, 사용자 단말에 내장된 장치 사용, 사용자 단말에 저장된 개인 정보 사용, 사용자 단말의 통신 상태 변경 또는 사용자 단말에 설치된 다른 애플리케이션 사용 중 적어도 하나에 대한 권한을 설정할 수 있다.
애플리케이션 개발을 위한 퍼미션 입력 방법은 컴퓨터 장치가 사용함수 및 코드를 포함하는 애플리케이션 설치 파일(APK)을 생성하는 단계를 더 포함할 수 있다.
애플리케이션 개발을 위한 퍼미션 입력 방법은 컴퓨터 장치가 사용함수에 대한 제거 명령을 입력받으면, 퍼미션 파일에서 사용함수에 대응하는 퍼미션을 삭제하는 단계를 더 포함할 수 있다.
안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체는 컴퓨터 장치가 애플리케이션 개발 툴에서 제공하는 함수 중 사용함수를 선택하는 인터페이스 메뉴를 출력하는 단계, 컴퓨터 장치가 인터페이스 메뉴에서 사용함수에 대한 선택 명령을 입력받는 단계, 컴퓨터 장치가 사용함수가 사용자 단말에 대한 퍼미션을 요구하는 함수인지 판단하는 단계, 컴퓨터 장치가 사용함수가 사용자 단말에 대한 퍼미션을 요구하는 함수라고 판단한 경우 퍼미션 테이블을 이용하여 사용함수가 사용하는 하나 이상의 퍼미션을 결정하는 단계 및 컴퓨터 장치가 결정한 퍼미션에 대한 코드를 퍼미션 파일에 삽입하는 단계를 포함한다.
이하 설명하는 기술은 개발 단계에서 필수적인 퍼미션만을 개발자에게 제공하여 개발자는 편리하게 애플리케이션 제작이 가능하게 하고, 사용자는 의도하지 않은 불필요한 퍼미션을 수락할 필요가 없기 때문에 사용자의 개인 정보 보호 및 악성 코드 차단에 이바지한다.
이하 설명하는 기술의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1(a)는 안드로이드 애플리케이션을 위한 메니페스트 파일의 예를 도시하고, 도 1(b)는 안드로이드 마켓에서 사용자에게 퍼미션을 요청하는 화면의 예이다.
도 2는 안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법에 대한 순서도의 예이다.
도 3(a)는 퍼미션 테이블에 대한 예이고, 도 3(b)는 퍼미션 테이블에 기반하여 사용함수에 대한 퍼미션을 관리하는 테이블에 대한 예이다.
도 4는 안드로이드 애플리케이션을 제작하는 방법에 대한 순서도의 예이다.
도 2는 안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법에 대한 순서도의 예이다.
도 3(a)는 퍼미션 테이블에 대한 예이고, 도 3(b)는 퍼미션 테이블에 기반하여 사용함수에 대한 퍼미션을 관리하는 테이블에 대한 예이다.
도 4는 안드로이드 애플리케이션을 제작하는 방법에 대한 순서도의 예이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
이하 설명하는 기술은 스마트폰, 태블릿 PC 등(이하 사용자 단말이라고 함)과 같은 장치에 설치되어 특정한 서비스를 제공하는 애플리케이션(application)을 개발하는 과정에 적용되는 것이다. 이하 설명하는 기술은 애플리케이션을 위한 소스 코딩(coding) 과정에서 애플리케이션에서 사용자 단말에 요구하는 특정한 퍼미션(permission)을 선택하고, 퍼미션을 자동으로 코딩 과정에 삽입하기 위한 것이다.
현재 사용자 단말의 OS 종류에 따라 사용자 단말에서 동작하는 애플리케이션에 대한 개발 툴 및 개발 언어 등이 다르다. 이하 설명하는 기술은 특정한 OS에 제한적으로 적용되는 것은 아니다. 다만 설명의 편의를 위해 안드로이드(android) 애플리케이션을 전제로 하여 설명하고자 한다. 이하 안드로이드라는 용어는 구글에서 개발한 애플리케이션 개발 언어를 의미한다.
도 1(a)는 안드로이드 애플리케이션을 위한 메니페스트 파일의 예를 도시하고, 도 1(b)는 안드로이드 마켓에서 사용자에게 퍼미션을 요청하는 화면의 예이다.
안드로이드 애플리케이션에 대한 퍼미션은 "AndroidManifest.xml"이라는 파일에 저장된다. 안드로이드는 현재 145개의 퍼미션을 갖고 있다. 구체적인 종류는 해당 분야의 기술자라면 통상적으로 알고 있는 내용이므로 자세한 설명은 생략한다.
도 1(a)의 메니페스트 파일에는 무선 통신을 통한 인터넷 접속에 대한 권한인 "INTERNET"에 대한 퍼미션과 사용자 단말의 외부 저장장치에 특정한 데이터를 저장할 수 있는 권한인 "WRITE_EXTERNAL_STORAGE"에 대한 퍼미션에 대한 예가 기재되어 있다. 구체적인 내용은 다양하지만, 퍼미션은 애플리케이션이 사용자 단말에 저장된 데이터 사용, 사용자 단말에 내장된 장치(센서) 사용, 사용자 단말에 저장된 개인 정보 사용, 사용자 단말의 통신 상태 변경 또는 사용자 단말에 설치된 다른 애플리케이션 사용 등에 관한 권한을 의미한다.
사용자 단말을 사용하는 사용자는 구글 마켓과 같은 앱 스토어에서 특정 애플리케이션을 다운받는 과정에서 개발자가 설정한 퍼미션에 대한 안내를 받는다. 도 1(b)는 사용자에게 퍼미션을 요청하는 장면에 대한 예이다. 도 1(b)는 인터넷 사용, 휴대폰 상태 및 ID 읽기 허용, 다른 콘텐츠의 공유, 내장 메모리의 수정 및 삭제 권한 등에 대한 예를 나타낸다.
사용자는 도 1(b)와 같이 애플리케이션을 다운받는 과정에서 퍼미션을 수락해야한 해당 애플리케이션을 다운받을 수 있기 때문에, 일반적으로 모든 퍼미션 요구를 수락하고 애플리케이션을 설치한다. 개발자는 자신이 개발한 애플리케이션에서 반드시 필요한 퍼미션만을 선택적으로 요청해야 할 것이나, 퍼미션은 메니페스트 파일에 수동으로 일일이 기재해야한다. 개발자 입장에서는 필요한 퍼미션을 파악하는 일과, 해당 퍼미션을 메니페스트 파일에 기재해야하는 작업이 번거롭기 때문에 일반적으로 안드로이드에서 사용하는 모든 퍼미션을 메니페스트 파일에 기재하곤 한다. 나아가 사용자가 특별한 검토 없이 퍼미션을 수락한다는 점을 악용하여 개발자가 악성 앱을 만들어 배포하면서 사용자의 개인 정보를 무단으로 유출하거나, 사용자 단말의 오동작을 일으킬 위험도 있다.
이하 설명하는 기술은 개발자가 애플리케이션을 개발하는 과정에서 자신의 애플리케이션 코딩을 위해 사용하는 특정한 함수(메소드)가 반드시 필요로하는 퍼미션을 사전에 결정하고, 선택된 퍼미션을 자동으로 메니페스트 파일에 삽입한다. 이를 통해 개발자는 손쉽게 퍼미션을 삽입할 수 있고, 불필요한 퍼미션을 사용자에게 요청하는 일을 방지할 수 있다. 나아가 악성 개발자가 사용자 정보를 추출하기 위한 퍼미션을 삽입하는 과정을 어렵게 만들 수 있다. 이하 설명하는 기술이 효과적으로 사용되기 위해서는 안드로이드 커널 단에 이하 설명하는 기술이 적용되는 것이 바람직하다.
이하에서는 도면을 참조하면서 안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100) 및 안드로이드 애플리케이션을 제작하는 방법(200)에 관하여 구체적으로 설명하겠다.
도 2는 안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100)에 대한 순서도의 예이다.
안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100)은 컴퓨터 장치가 안드로이드 애플리케이션 개발 툴(tool)을 실행하는 단계(110), 컴퓨터 장치가 애플리케이션 개발 툴에서 제공하는 함수 중 사용함수에 대한 선택 명령을 입력받는 단계(120), 컴퓨터 장치가 퍼미션 테이블을 이용하여 사용함수가 사용하는 하나 이상의 퍼미션을 결정하는 단계(130) 및 컴퓨터 장치가 결정한 퍼미션에 대한 코드를 퍼미션 파일에 삽입하는 단계(140)를 포함한다.
컴퓨터 장치는 개발자가 애플리케이션 개발을 위해 사용하는 장치를 의미한다. 컴퓨터 장치에는 애플리케이션 개발을 위한 애플리케이션 개발 툴이 설치되어 동작하는 상태이다(110). 또는 컴퓨터 장치에서 웹 기반의 애플리케이션 개발 툴이 실행되는 상황일 수도 있다.
개발자는 개발 과정에서 특정한 함수(메소드)를 사용하게 된다. 이하 애플리케이션 개발에 사용되는 함수를 사용함수라고 명명한다. 개발자는 택스트 에디터 프로그램을 통해 사용함수를 직접 입력할 수도 있고, 애플리케이션 개발 툴이 제공하는 인터페이스 메뉴를 통해 특정 사용함수를 선택할 수도 있다(120).
개발자가 특정한 사용함수를 선택하면 컴퓨터 장치는 사용함수가 선택된 시점 또는 모든 코딩이 완료된 시점에서 선택된 사용함수(들)가 반드시 필요로하는 퍼미션을 메니페스트 파일에 자동으로 저장한다(140).
퍼미션 테이블은 안드로이드 애플리케이션 제작에 사용되는 모든 함수와 모든 함수 각각이 요구하는 퍼미션을 매칭한 것으로, 컴퓨터 장치의 메모리에 로딩된다.
퍼미션은 애플리케이션이 사용자 단말에 저장된 데이터 사용, 사용자 단말에 내장된 장치 사용, 사용자 단말에 저장된 개인 정보 사용, 사용자 단말의 통신 상태 변경 또는 사용자 단말에 설치된 다른 애플리케이션 사용 중 적어도 하나에 대한 권한을 설정한다.
도 3(a)는 퍼미션 테이블에 대한 예이고, 도 3(b)는 퍼미션 테이블에 기반하여 사용함수에 대한 퍼미션을 관리하는 테이블에 대한 예이다.
도 3(a)에서 메소드(method)는 사용함수를 의미하고, 퍼미션은 해당 메소드에 반드시 필요한 퍼미션을 의미한다. 구체적인 사용함수 및 퍼미션의 내용을 기재하지 않고, 설명의 편의를 위해 6개의 메소드를 "M1 내지 M6"로 표시하였고, 퍼미션도 "P1 내지 P5"로 표시하였다. 메소드 M1은 퍼미션 P1 및 P2를 필요로하고, M2는 P1을 필요로하고, M3는 P2, P4 및 P5를 필요로한다. 도 3(a)는 퍼미션 테이블에 대한 예에 불과하고, 다른 형태의 테이블도 가능할 것이다. 퍼미션 테이블은 사전에 모든 사용함수에 대해 작성되어야 한다. 애플리케이션 개발 툴은 퍼미션 테이블에 대한 정보를 포함하고 있어야 한다.
도 3(b)는 애플리케이션 개발 툴이 퍼미션 테이블을 사용하여 현재 개발자가 선택한 메소드와 퍼미션의 관계를 관리하는 테이블이다. 위에서 아래 방향으로 사용함수가 선택되거나 삭제되는 것이다. 최초 메소드 M1이 선택되면 퍼미션 P1 및 P4에 대한 카운터(counter)가 1이된다. 이후 M2가 선택되면 P1에 대한 카운터가 하나 늘어서 2가 된다. M5 가 선택되면 P3에 대한 카운터가 1이 된다. M4가 선택되면 P2에 대한 카운터가 1이되고, 이후 M6가 선택되면 P2에 대한 카운터가 2가 된다. 이때 개발자가 메소드 M4를 소스 코드에서 삭제하는 작업을 수행하면, P2에 대한 카운터는 1이 된다. 퍼미션에 대한 카운터가 필요한 이유는 사용함수에 따라 공통된 퍼미션을 사용할 수 있고, 이에 따라 사용함수가 추가되거나 삭제되는 경우 해당 퍼미션을 메니페스트 파일에서 삭제할지 여부를 결정해야 하기 때문이다.
코딩 과정에서 실시간으로 퍼미션을 메니페스트 파일에 기록하는 경우는 퍼미션에 대한 카운터가 1이 되면 퍼미션을 메니페스트 파일에 삽입하고, 카운터가 0이되면 해당 퍼미션을 메니페스트 파일에 삽입한다. 코딩이 모두 종료된 후 퍼미션을 메니페스트 파일에 기록하는 경우는 카운터가 1 이상인 퍼미션을 모두 메니페스트 파일에 삽입하면 된다.
안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100)은 컴퓨터 장치가 사용함수에 대한 제거 명령을 입력받으면, 퍼미션 파일에서 사용함수에 대응하는 퍼미션을 삭제하는 단계(150)를 더 포함할 수도 있다. 이 과정은 컴퓨터 장치가 개발자가 특정 사용함수를 선택하거나 삭제하는 과정에 대하여 실시간으로 해당 퍼미션 파일을 업데이트하는 것이다. 만약 개발자가 모든 프로그램 코드를 완성하고 컴파일하는 과정에서 컴퓨터 장치가 사용된 사용함수에 대한 퍼미션을 메니페스트 파일에 기재한다면 삭제하는 과정이 필요하지 않을 수도 있다.
또한 안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100)은 컴퓨터 장치가 최종적으로 완성된 프로그램 코드(사용함수 및 퍼미션에 대한 코드 포함)를 애플리케이션 설치 파일(APK)로 변환할 수 있다(160).
도 4는 안드로이드 애플리케이션을 제작하는 방법(200)에 대한 순서도의 예이다. 도 4는 도 2에서 설명하는 과정에 대한 하나의 실시예로서 안드로이드 애플리케이션을 제적하는 방법에 관한 것이다
안드로이드 애플리케이션을 제작하는 방법(200)은 컴퓨터 장치가 안드로이드 애플리케이션 개발 툴을 실행하는 단계(210), 컴퓨터 장치가 애플리케이션 개발 툴에서 제공하는 함수 중 사용함수를 선택하는 인터페이스 메뉴를 출력하는 단계(220), 컴퓨터 장치가 인터페이스 메뉴에서 사용함수에 대한 선택 명령을 입력받는 단계(230)를 포함한다.
이후 컴퓨터 장치는 사용함수가 사용자 단말에 대한 퍼미션을 요구하는 함수인지 판단하게 되고(240), 퍼미션이 필요한 사용함수가 선택된 경우라면 퍼미션 테이블을 이용하여 사용함수가 사용하는 하나 이상의 퍼미션을 결정하고, 컴퓨터 장치가 결정한 퍼미션에 대한 코드를 퍼미션 파일에 삽입한다(250).
애플리케이션 코딩이 완료되었는지 확인(260)하여 코딩이 완료되지 않았다면 사용함수를 선택하는 과정을 다시 반복하게 되고, 코딩이 완료되었다면, 컴퓨터 장치가 사용함수 및 코드를 포함하는 애플리케이션 설치 파일(APK)을 생성한다(270). 사실 애플리케이션 코딩이 완료되는 것은 개발자의 입력에 따라 결정된다. 개발자가 코딩이 완료된 후 해당 소스 코드를 컴파일하는 선택을 입력하면 애플리케이션 코딩이 완료되었다고 판단한다.
한편 전술한 안드로이드 애플리케이션 개발을 위한 퍼미션 입력 방법(100) 및 안드로이드 애플리케이션을 제작하는 방법(200)은 해당 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체 형태로 제공될 수 있다. 기록 매체는 CD, DVD, 비휘발성 메모리(플래쉬 메모리, ROM 등), 휘발성 메모리 등을 포함한다. 실제 제품으로는 애플리케이션 개발 툴(프로그램)을 설치하는 파일이 저장된 기록 매체가 이에 해당할 것이다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
Claims (11)
- 컴퓨터 장치가 애플리케이션 개발 툴을 실행하는 단계;
상기 컴퓨터 장치가 상기 애플리케이션 개발 툴이 제공하는 함수에 대한 정보를 출력하는 단계;
상기 컴퓨터 장치가 상기 함수 중 복수의 사용함수에 대한 선택 명령을 입력받는 단계;
상기 컴퓨터 장치가 퍼미션 테이블을 이용하여 상기 복수의 사용함수 각각에 대해 상기 사용함수가 사용하는 하나 이상의 퍼미션을 결정하고, 상기 하나 이상의 퍼미션 각각에 대한 카운트를 하나 증가시키는 단계;
상기 컴퓨터 장치가 상기 복수의 사용함수 중 적어도 하나에 대해 삭제 명령을 입력받는 경우, 삭제 명령이 입력된 사용함수가 사용하는 하나 이상의 퍼미션에 대한 카운트를 하나 감소시키는 단계; 및
상기 컴퓨터 장치가 상기 카운트가 최초 초기값보다 큰 퍼미션에 대한 코드를 퍼미션 파일에 삽입하는 단계를 포함하되,
상기 퍼미션 테이블은 애플리케이션 제작에 사용되는 모든 함수와 상기 모든 함수 각각이 요구하는 퍼미션을 매칭한 것인 애플리케이션 개발을 위한 퍼미션 입력 방법. - 제1항에 있어서,
상기 퍼미션 테이블은 상기 컴퓨터 장치의 메모리에 로딩되는 애플리케이션 개발을 위한 퍼미션 입력 방법. - 제1항에 있어서,
상기 퍼미션은 상기 애플리케이션이 사용자 단말에 저장된 데이터 사용, 상기 사용자 단말에 내장된 장치 사용, 상기 사용자 단말에 저장된 개인 정보 사용, 상기 사용자 단말의 통신 상태 변경 또는 상기 사용자 단말에 설치된 다른 애플리케이션 사용 중 적어도 하나에 대한 권한을 설정하는 애플리케이션 개발을 위한 퍼미션 입력 방법. - 제1항에 있어서,
상기 퍼미션 파일은 AndroidManifest.xml인 애플리케이션 개발을 위한 퍼미션 입력 방법. - 제1항에 있어서,
상기 컴퓨터 장치가 상기 사용함수 및 상기 코드를 포함하는 애플리케이션 설치 파일(APK)을 생성하는 단계를 더 포함하는 애플리케이션 개발을 위한 퍼미션 입력 방법. - 삭제
- 안드로이드 애플리케이션 툴을 이용하여 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
컴퓨터 장치가 애플리케이션 개발 툴에서 제공하는 함수를 선택하는 인터페이스 메뉴를 출력하는 단계;
상기 컴퓨터 장치가 상기 인터페이스 메뉴에서 상기 함수 중 사용함수에 대한에 대한 선택 명령을 입력받는 단계;
상기 컴퓨터 장치가 상기 사용함수가 사용자 단말에 대한 퍼미션을 요구하는 함수인지 판단하는 단계;
상기 컴퓨터 장치가 상기 사용함수가 사용자 단말에 대한 퍼미션을 요구하는 함수라고 판단한 경우 퍼미션 테이블을 이용하여 상기 사용함수가 사용하는 하나 이상의 퍼미션을 결정하고, 상기 하나 이상의 퍼미션 각각에 대한 카운트를 하나 증가시키는 단계;
상기 컴퓨터 장치가 상기 사용함수에 대해 삭제 명령을 입력받는 경우, 삭제 명령이 입력된 사용함수가 사용하는 하나 이상의 퍼미션에 대한 카운트를 하나 감소시키는 단계; 및
상기 컴퓨터 장치가 상기 카운트가 최초 초기값보다 큰 퍼미션에 대한 코드를 퍼미션 파일에 삽입하는 단계를 포함하되,
상기 퍼미션 테이블은 애플리케이션 제작에 사용되는 모든 함수와 상기 모든 함수 각각이 요구하는 퍼미션을 매칭한 것인 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체. - 삭제
- 제7항에 있어서,
상기 퍼미션은 사용자 단말에 저장된 데이터 사용, 상기 사용자 단말에 내장된 장치 사용, 상기 사용자 단말에 저장된 개인 정보 사용, 상기 사용자 단말의 통신 상태 변경 또는 상기 사용자 단말에 설치된 다른 애플리케이션 사용 중 적어도 하나에 대한 권한을 설정하는 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체. - 제7항에 있어서,
상기 퍼미션 파일은 AndroidManifest.xml인 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체. - 제7항에 있어서,
상기 컴퓨터 장치가 상기 사용함수 및 상기 코드를 포함하는 애플리케이션 설치 파일(APK)을 생성하는 단계를 더 포함하는 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130166650A KR101556831B1 (ko) | 2013-12-30 | 2013-12-30 | 애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130166650A KR101556831B1 (ko) | 2013-12-30 | 2013-12-30 | 애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150077799A KR20150077799A (ko) | 2015-07-08 |
KR101556831B1 true KR101556831B1 (ko) | 2015-10-01 |
Family
ID=53790477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130166650A KR101556831B1 (ko) | 2013-12-30 | 2013-12-30 | 애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101556831B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102237877B1 (ko) * | 2019-12-06 | 2021-04-09 | 주식회사 오픈드래프트 | 실시간 협업지원 지능형 소프트웨어 자동 개발 시스템 및 그 방법 |
CN112363709A (zh) * | 2020-12-11 | 2021-02-12 | 成都商通数治科技有限公司 | 一种Android申请权限并返回申请结果的方法 |
-
2013
- 2013-12-30 KR KR1020130166650A patent/KR101556831B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20150077799A (ko) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506221B (zh) | 应用程序升级方法、装置及设备 | |
CN107644286B (zh) | 工作流处理方法及装置 | |
KR101807897B1 (ko) | 크로스―플랫폼 어플리케이션 프레임워크 | |
KR102010508B1 (ko) | 소스 코드 파일을 업데이트하는 시스템 및 방법 | |
CN104391690B (zh) | 一种应用开发系统及方法 | |
US20170242664A1 (en) | Method, apparatus, system, and non-transitory computer readable medium for extending at least one function of a package file | |
CN111782300B (zh) | 一种数据处理方法、装置、设备及系统 | |
CN103970563B (zh) | 动态加载安卓类的方法 | |
CN104991793A (zh) | 一种用于应用程序分包的方法、装置以及系统 | |
CN107357732B (zh) | 用户终端及软件开发工具包接入状态检测装置与方法 | |
CN108170465B (zh) | 一种版本信息管理方法、电子设备及可读存储介质 | |
US8959485B2 (en) | Security protection domain-based testing framework | |
CN106155661B (zh) | 一种控件接入方法及装置 | |
CN104267981A (zh) | 一种加载桌面上的应用布局的方法及装置 | |
CN108984196A (zh) | 一种Android TV系统机顶盒的系统升级方法及Android TV系统机顶盒 | |
KR101556831B1 (ko) | 애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체 | |
CN104063306A (zh) | 智能终端软件测试中的自动登录方法、装置和系统 | |
CN105373384B (zh) | 一种软件开发方法和装置 | |
CN109409037B (zh) | 一种数据混淆规则的生成方法、装置及设备 | |
CN109815116A (zh) | 一种软件测试方法和设备平台及计算机可读存储介质 | |
CN102508882A (zh) | 自动显示电子书内容处理方法和带有电子书阅读功能的设备 | |
US20140258973A1 (en) | Systems And Methods For Automatically Generating Applications | |
CN108121562B (zh) | 固件版本切换方法、电子设备和bios芯片 | |
CN102098568B (zh) | 一种电视机数据克隆的方法 | |
KR20120123210A (ko) | 애플리케이션의 저장 공간을 제공하기 위한 제어 방법과 그를 위한 단말 및 서버 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180829 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190905 Year of fee payment: 5 |