반응형

안드로이드 52

안드로이드에서 Zxing을 사용하여 QR코드 생성/스캔

안드로이드에서는 QR코드를 아주 간단하게 생성, 스캔할 수 있다. 가장 먼저, gradle에 아래와 같은 코드를 입력하여 모듈을 추가해주도록 하자. implementation 'com.journeyapps:zxing-android-embedded:4.1.0' implementation 'com.google.zxing:core:3.4.1' gradle의 내용을 수정했으면, Android Studio우측 상단의 Sync Now를 눌러주는걸 절대 잊지말자. 다음으로 실제로 QR코드를 생성해보자. fun createQRCode(){ val qrCode = QRCodeWriter() val bitMtx = qrCode.encode( intent.getStringExtra("id"), BarcodeFormat.QR..

안드로이드 AlarmManager로 정해진 시간에 작업 수행(Kotlin)

이번 글에서는 AlarmManager를 사용해서 우리가 원하는 시간에 작업을 수행하는 방법에 대해 알아보자. 자세한 AlarmManager에 대한 설명은 생략하고, 사용하는 방법에 대해서만 알아볼것이다. 바로 코드로 확인해보자. fun addAlarm(){ var alarmManager = this.getSystemService(Context.ALARM_SERVICE) as AlarmManager var intent = Intent(this, Alarm::class.java) var pIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT) val cal = Calendar.getInstance() cal..

안드로이드에서 공용키 암호화(RSA) 사용하기(Kotlin)

이번 글에서는 안드로이드에서 RSA암/복호화를 하는 방법에 대해서 알아보자. RSA는 대표적인 공용키 암호화 방식으로써, 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 다른 것을 공용키, 비대칭키 암호화 방식이라고 한다. 여기서 모두에게 공개하는 키를 공용키라고 하고, 누구에게도 알리지 않고 나만 가지고 있는 키를 개인키라고한다. RSA알고리즘을 사용하기 위해선 이 둘을 한 쌍으로 하는 KeyPair가 반드시 필요하다. 그럼 일단 KeyPair를 만들어보도록 하자. val keygen = KeyPairGenerator.getInstance("RSA") keygen.initialize(2048, SecureRandom()) var keyPair = keygen.genKeyPair() KeyPair는..

안드로이드 Sha256 Hash화

이번 글에선 Sha256알고리즘을 사용해 메시지의 Hash값을 구하는 법에 대해 알아보도록 하자. fun getSign(input: String): String{ val hash: ByteArray try{ val md = MessageDigest.getInstance("SHA-256") md.update(input.toByteArray()) hash = md.digest() }catch (e: CloneNotSupportedException){ throw DigestException("couldn't make digest of patial content") } return Base64Utils.encode(hash) } Hash화는 매우 간단하게 짧은 코드로 끝낼 수 있다. 먼저 ByteArray변수인..

안드로이드에서 X.509 인증서, CRL 사용하기

이번 글에서는 안드로이드에서 X.509인증서와 CRL을 받아와서 사용해보도록 하자. X.509인증서와 CRL에 대한 내용은 생략하도록 하고, 두 데이터는 전달 받을 때 pem형식으로 받아온다. pem형식은 아래와 같이 되어있다. -----BEGIN CERTIFICATE----- MIIDizCCAnOgAwIBAgIUS8lUTmZGBA+IbTMGkCLVKT6RdMYwDQYJKoZIhvcNAQEL BQAwNjELMAkGA1UEBhMCa3IxEzARBgNVBAoMClN1d29uVW5pdi4xEjAQBgNVBAMM CXJvb3RjYVlTWTAeFw0yMTA2MDIyMjEzMDBaFw0yMjA2MDIyMjEzMDBaMDExCzAJ BgNVBAYTAmtyMRIwEAYDVQQKDAlTdXdvblVuaXYxDjAMBgN..

안드로이드 4대 컴포넌트(구성요소)

이 글에선 안드로이드의 4대 컴포넌트에 대해서 알아보도록 하자. 안드로이드는 4개의 컴포넌트(구성요소)로 이루어져 있다. 1. Activity(액티비티) 2. Service(서비스) 3. BroadcastReceiver(방송 수신자) 4. ContentProvider(콘텐츠 제공자) 이 네 가지 컴포넌트들은 각각 독립적인 형태로 존재하며, 고유의 기능을 수행한다. 또한 넷은 Intent를 통해서 서로 상호작용을 하는데, 그림으로 표현하면 아래와 같이 된다. 그렇다면 네 가지 놈들의 특징에 대해 알아보기 전에 Intent라는 놈은 뭔데 넷의 사이에서 존재할까? Intent의 가장 간단한 사용 예는 화면(Activity)전환에서 볼 수 있다. 먼저, 우리가 Activity이동을 할 때에는 먼저 Intent객..

액티비티 생명 주기(Activity Lifecycle)

이번 글에서는 Activity Lifecycle에 대해서 알아보자. 이전에 안드로이드 4대 컴포넌트에 대해서 글을 썻는데, Activity는 이 중 하나이며 사용자에게 실제로 보여지는 화면이기 때문에 안드로이드에서 가장 기본이 되는 구성요소라고 할 수 있다. 이 Activity는 생명주기를 갖는데, Activity가 만들어지고 사용자에게 보여지고, 없어지는 과정에서 변화하는 상태에 따라 실행되는 콜백 메소드들을 이야기한다. 또한 Activity는 총 세 가지 상태를 가지는데, 이는 아래와 같은 것들이 있다. 1. RESUMED : Activity가 Focus를 가지고(화면 최상단)화면에 보이는 생태이다. 2. PAUSED : Activity가 화면에 보이지만 Focus를 가지지 못한 상태이다. 3. ST..

안드로이드 권한(Permisson) 요청

안드로이드를 통한 개발 시 특정 기능을 사용하기 위해선 Manifest파일에 권한을 선언해야 한다. 이번 글에서는 Manifest파일에 권한을 선언하는 방법, 위험 권한을 사용자에게 요청하는 방법 등에 대해 알아보자. 권한 등급 안드로이드에서의 권한은 일반 권한, 위험 권한, 서명 권한의 세 가지 보호 수준으로 나뉜다. 또한 각 수준마다 앱 사용 시 사용자에게 권한을 요청하여야만 해당 권한을 사용하는 기능이 제대로 동작할 수 있다. 일반 권한(Normal Permission) 일반 권한에는 인터넷(INTERNET), 블루투스 상태 확인(BLUETOOTH), 기기 간 근거리 통신 사용(NFC)등의 권한이 있으며, 앱 설치 시 사용자에게 권한 승인을 결정하는 팝업창을 보여준다. 권한 선언은 Manifest파..

레이아웃의 종류

서론 안드로이드에서 Activity를 구성하는것은 버튼, 텍스트뷰와 같은 View들이다. 그런데 이러한 View들은 혼자서는 화면에 배치할 수 없고, ViewGroup에 포함된 상태로 위치가 결정되어야 화면에 배치할 수 있다. 또한 여기서 ViewGroup도 View에 포함되기 때문에 ViewGroup안에 ViewGroup이 포함될 수 있다. View와 VIewGroup에 대해서는 아래의 글에서 설명해 놓았으니 참고하시길 바란다. https://angangmoddi.tistory.com/256 View와 ViewGroup 안드로이드에서 사용자에게 실제로 보여지는 UI요소는 크게 View와 ViewGroup으로 이루어져있다. View View는 안드로이드 화면에 보이는 모든 객체들을 말한다. 예를 들면 B..

반응형