2019/07 50

기본 입출력

#include 이곳 스탠다드인풋아웃풋 해드업 파일안에는 전부 이미 입출력함수가 들어가 있는 상황이기 때문에 따로 import를 하지 않아도 된다. C언어에서는 기본 입출력 함수를 이용하여 사용자와 상호작용 할 수 있다. 대표적으로 scanf("%d", &x)라는 x라는 정수에 사용자에게 입력받은 값을 삽입한다는 의미의 코드이다. 다만 사용자로부터 입력 받을 자료혀엥 따라서 %d, %c, %f, %lf 등의 다양한 문법을 사용해야 한다는것에 유의해야 한다. 그리고 반면에 프로그램에서 사용자에게 메세지를 출력할 때는 가장 대표적으로 printf();를 이용한다. 물론 이들은 텍스트 기반의 입출력이며 나중에 GUI를 배우게 되면 사용자에게 글자 뿐만 아니라 이미지도 보여줄 수 있다. #ifdef _MSC_V..

C/기초 2019.07.25

자료형 (char, int && 8진수, 10진수, 16진수)

우리에게 보여지는것은 글자 하나지만, 실질적으로는 char도 숫자로 구성되어있다. #include int main(void) { char x = 65; printf("%c",x); return 0; } 이렇게 하면 출력값은 숫자가 아니라 a로 나오게 된다. 왜냐하면 내부적으로 65는 a라는 뜻을 가지고 있기 때문이다. 즉 아스키코드이기 때문이다. #include int main(void) { int x = 65; printf("%c",x); return 0; } 놀랍게도 int형으로 명령을 해도 a라고 출력이 된다! 그리고 char에서 int형으로 출력하는것도 가능하다. #include int main(void) { int x = 65; printf("%c \n",x); char y = 65; print..

C/기초 2019.07.23

Stack

스택을 관리하는 방법은 2가지가 있다. 1. Launch Mode Standard (Activity를 복수개를 생성 할 수 있다.) - 기본모드 - 다중 인스턴스 허용 특별히 설정하지 않아도 적용이된다. singleTop (Activity를 복수개를 생성 할 수 있다.) - 조건부 다중 인스턴스 허용 - 해당 액티비티가 최상위 stack에 있을 경우에는, onNewIntent() 메서드를 호출 한다. singleTask (Activity를 복수개를 생성 할 수 없다.) - 비권장 - 오직 한개만 생성 될 수 있고, 자신이 새로운 stack을 만들어 나가고, 다른 액티비티들을 위에 쌓을 수 있다. singleInstance (Activity를 복수개를 생성 할 수 없다.) - 비권장 - 오직 한개만 생성 ..

Intent에 데이터를 input하는 방법

Activity A에서 Activity B로 명시적으로 데이터를 받는 방법을 먼저 보여주겠다. package fast.campust.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { Log.d("LifeCycle","1 : onCreate"); super.onCreate(savedInstan..

Intent

어플리케이션 구성요소간에 작업 수행을 위한 정보 전달을 하는 역할 Intent 종류 명시적 Intent 암시적 Intent 작업을 수행 하길 원하는 컴포넌트를 정확히 지목 해당 작업을 할 수 있는 컴포넌트 전부에게 전달 Intent intent = new Intent(this, NextActivity); startActivity(intent); Intent intent = new Intent(package.name.NextActivity); startActivity(intent); 개발할때는 안정성을 추구하기 때문에 반드시 편처럼 intent를 만들어서 화면을 전환해야한다. 암시적인것은 공유버튼을 눌렀을때 특정 어플리케이션을 여는것이 아니라 공유기능을 수행할수있는 소셜 어플리케이션을 여러개가 목록처럼 올..

Activity

어플리케이션 구성요소 어플리케이션은 여러개의 Activity로 구성된다. Activity는 또 다른 Activity를 시작 할 수 있다. 새로운 Activity가 시작되면 이전 Activity는 중단 되지만, '스택'에 보존하고 있다. 오버라이드해서 설정을 할때, "Log.d()"가 있는데 이것은 무슨뜻이냐면 System.out.print와 비슷한것이다. 개발할때 중간중간에 원하는 작업이 잘 작동이 되는지 확인차에 출력할때 그때 사용이 되는 것이다. 소괄호 안에는 ""을 이용해서 처음에는 키값을 넣고 그다음에는 벨류 값을 넣는다. Activity는 앱의 한 화면이라고 생각하면 된다. 앱은 화면들의 연결로 구성되어 있고, 이러한 화면들을 액티비티라고 한다. 액티비티는 또다른 액티비티를 시작할 수 있다. 새..

실물 디바이스로 포팅하는 방법 & 프로파일러 사용 방법

실물디바이스로 포팅하는 방법은 2가지가 있다. 실물 디바이스를 연결했을때는 개발자 모드로 변환한 후에는 개발자 옵션이 생기는데 개발자 옵션에 들어가서 디버깅모드를 반드시 활성화 시켜야 한다. 만약 컴퓨터 성능이 떨어진다면 에뮬레이터로 보는것보다 실물 디바이스로 연결해서 보는 것을 더 추천한다. 또한 가끔 에뮬레이터에서는 문제없이 작동하는 것이 실제 핸드폰에 연결헀을때 문제가 될 때도 있기 때문에 이점을 유의하여야 한다. 최대한 실물디바이스를 연결해서 하는 것을 추천한다. 프로파일러는 앱이 CPU, RAM를 얼마나 차지하고 어느 통신사 사용하는지, 리소스에 관한 프로파일을 보여주게된다. 이것을 확인하려면 에뮬레이터든지 실물디바이스던지 연결을해서 작동을 해보아야한다. 그리고 에뮬레이터든 실물디바이스던 작동을..

Gradle Script란

외부에서 추가된 기능들을 라이브러리라고 하는데 이러한 라이브러리를 관리하는것이 gradle이다. 보면 첫번째 build.gradle과 두번째 build.gradle을 볼 수 있다. 첫번쨰는 project전체에 영향을 주는 파일을 설정하는 것이다. 두번째는 app에 영향을 주는 파일을 설정하는 것이다. Module:app에 build.gradle에 들어가면 이러한 모습을 볼 수 있다. apply plugin: 'com.android.application' android { compileSdkVersion 29 //기계가 알아들을 수 있는 29버전 코드로 바꾼다. buildToolsVersion "29.0.0" defaultConfig { applicationId "com.example.myapplicati..