본문 바로가기

Programming/Android

[Android] Dalvik & ART 1. Compiler vs Interpreter Compiler 언어(대표적으로 C, C++ 등) Runtime 전에 미리 하드웨어 플랫폼 별로 적합한 Machine Code로 해석해 두었다고, Runtime시 별도 처리 없이 실행 Interpreter 언어(대표적으로 Script 언어) Runtime에 해석과 실행을 동시에 한다. Compiler 언어는 빠른 실행 속도라는 이점을 얻는 대신, Machine Code의 플랫폼 종속성과 디스크 공간 활용이 단점이자 비용이 된다. Interpreter 언어는 플랫폼 종속성은 없지만, Runtime시 빈번한 인터프리팅이 일어나기 떄문에 상대적으로 실행 속도는 느린 편이며, 스크립트 언어들이 여기에 속한다. Java는 Runtime 전에 바이트 코드로 컴파일하는.. 더보기
[Android] Context [Android] Context What is Context? Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스 추상 클래스이며 실제 구현은 Android 시스템에 의해 제공됨 Context를 통해 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있음 Activity 실행, Intent Broadcasting, Intent수신 등과 같은 응용 프로그램 수준의 작업을 수행하기 위한 API를 호출 What is Role of Context? 어플리케이션과 관련된 정보에 접근하거나 연관된 시스템 레벨의 함수를 호출할 때 사용 안드로이드 시스템에서 어플리케이션과 관련된 정보에 접근하고자 할 때 ActivityManagerService를 통해야하는데 Context는 ActivityManag.. 더보기
[Android] 앱 구성 요소(Application Component) [Android] 앱 구성 요소(Application Component) Activity(액티비티) 123* 사용자 인터페이스가 있는 단일 화면(상호작용 할 수 있는 화면) * 하나의 애플리케이션은 보통 여러 개의 액티비티가 느슨하게 서로 묶여 있는 형태로 구성됨 * 액티비티는 스택(LIFO)으로 관리됨 Service(서비스) 123* 백그라운드에서 실행되는 구성 요소 * 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행 * 다른 구성 요소가 서비스를 시작한 다음 실행되도록 두거나 자신에게 바인드하여 상호작용할 수 있음 ContentProvider(콘텐츠 제공자) 123* 공유된 앱 데이터 집합을 관리 * 데이터는 파일 시스템이나 SQLite 데이터베이스 또는 웹이나 기타 영구적인 저.. 더보기
[Android] How To APK Install Programmatically How To APK Install Programmatically targetSdkVersion을 24이상부터 file 접근하는 방법이 변경됨[Android 7.0 변경사항 참고 : https://developer.android.com/about/versions/nougat/android-7.0-changes?hl=ko] [Code] AndroidManifest.xml 12345678910111213141516171819202122... ... ... res/xml/file_provider.xml 123456 [Function] install 12345678910111213141516171819private void install(Context context) { Observable installApk =.. 더보기
[Android] Input Event 이벤트 리스너(EventListener) void onClick( ) From View.OnClickListener 사용자가 항목을 터치하거나, navigation key 또는 트랙볼을 사용하여 해당 항목에 포커스를 맞추고 ‘Enter’키를 누르거나 트랙볼을 클릭하면 호출 1. 변수로 리스너 등록 // Create an anonymous implementation of OnClickListener private OnClickListener mCorkyListener = new OnClickListener() { public void onClick(View v) { // do something when the button is clicked } }; protected void onCreate(Bundle .. 더보기
[Android] View View Android의 UI는 ViewGroup과 View의 계층으로 이루어짐 출처 : Good Joon :: 안드로이드 개발 #4 - 첫 UI 개발 View란? Activity에서 화면을 구성하는 최소 단위(Widget들의 기본 Class) 로 화면에 보이는 모든 것 View를 상속하는 Class 예 : TextView ImageView, EditText, Button 등 ViewGruop n개의 View를 담을 수 있는 Container로 ViewGroup 또한 View를 상속받아 만든 Class입니다. ViewGroup를 상속하는 Class 예 : TextView ImageView, EditText, Button 등 출처: Android UI Layouts Tutorial View LifeCycl.. 더보기
[Android] Dependency Structure [Android] dependency 구조 보기Requireapk-dependency-graph(https://github.com/alexzaitsev/apk-dependency-graph)apk fileant 1.9.9 or newerat least Java 5 Intstall & Run (For Mac) hyogeun.park@xxxxxxxxxxxxx:~$ xcode-select --installhyogeun.park@xxxxxxxxxxxxx:~$ brew updatehyogeun.park@xxxxxxxxxxxxx:~$ brew install ant// move apk-dependency-graph directoryhyogeun.park@xxxxxxxxxxxxx:~$ anthyogeun.park@xx.. 더보기
[Android] View Collapse & Expand Animation Collpase & Expand AnimationCollpase/Expand UI를 만들 때, Animation을 주는 방법TransitionManager를 이용하면 간단하게 만들 수 있다! TransitionManager.beginDelayedTransition(ViewGroup, Transition) // ViewGroup은 root view를 넣어주면 된다.Transition의 종류Android 5.0(API 레벨 21) 이하에서 사용할 경우AutoTransition() : Android가 자동으로 Animation을 설정ChangeBound() : Collpase/Expand AnimationAndroid 5.0(API 레벨 21) 이상일 경우(위 2개 포함)는 아래 주소 참조 https://de.. 더보기
[Android] ViewPager & Fragment ViewPager & Fragment.md ViewPager & Fragment Fragment를 사용하는 것 중에 하나가 ViewPager와 같이 사용하는 것이다.(보통 TabLayout과 같이 사용하는데 이번에는 TabLayout는 다루지 않는다.)기본 예제(Basic)activity_basic.xml ​ fragment_basic.xml ​ BasicActivity public class BasicActivity extends FragmentActivity {​ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a.. 더보기
[Android] Debug & Release 동시에 두개 설치하기 Debug와 Release 두 개로 설치하기1. Introductionpackage name을 다르게하면 debug와 release를 동시에 설치할 수 있다. 2. package name에 'debug' 추가하기• build.gradle(app)... ​ buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { applicationIdSuffix ".debug" // 이 부분을 추가하면 release와 별개로 debug 앱이 설치된다. } } ... 3. App name 변경하기strings.xml에 있는 app_name.. 더보기