안드로이드/개발 TIP: 70개의 글
Decompile을 하는 이유는 간단하다. 소스를 보기 위해서.... apk파일을 열어보면 xml은 깨져있고 java파일은 보이지도 않는다.소스를 보기 위해서는 어떻게 해야할까?알고있는 몇가지를 포스팅해본다. - dex2jar https://github.com/pxb1988/dex2jar실행파일을 미러사이트에서 받으면 된다. 압축을 풀면 위와 같은 파일들을 볼 수 있다. 다음으로 apk에서 classes.dex파일을 추출하여 위 폴더에다 넣는다. 해당 폴더의 경로에서 d2j-dex2jar.bat classes.dex 를 입력하면 dex파일을 jar파일로 변환시켜준다. 변환된 jar파일의 압축을 풀면 java파일을 볼수가 있다. - smali2java dex2jar에 GUI까지 더해진 것이라 생각하면 된다..
작업을 하다보면 string, integer와 같은 resource들을 나열해서 쓸때가 있다.나열된 resource들은 코드를 복잡하게 만드는 주범이다. 이때 array를 이용하여 처리한다면 깔끔하게 처리할 수 있다. 다음과 같이 알기 쉽게 array라는 xml파일에 작업하도록 하겠다. array는 string , integer, drawable 등 다양한 형태로 추가 가능하다. test1 test2 test3 test4 1 2 3 4 @drawable/ic_place_white_24dp @drawable/ic_local_hotel_white_24dp 꺼내 쓰는 방법은 다음과 같이 하면된다.여기서 drawble은 TypedArray를 써서 담아야 한다. String[] strList = getResour..
안드로이드에서 비디오를 재생하는 방법은 두가지다. 하나는 원격지 서버에서 스트림으로 받아와 재생하는 방법또 하나는 로컬에 있는 매체를 재생하는 방법 다양한 재생방법과 라이브러리가 있겠지만 가장 기본적인 방법은 아래와 같다. VideoView videoView = (VideoView) findViewById(R.id.vidieo); MediaController controller = new MediaController(this); controller.setVisibility(View.GONE); videoView.setMediaController(controller); videoView.setOnCompletionListener(completionListener); //로컬 videoView.setVide..
우리가 흔히 sns에서 사진을 첨부할 때 선택할 때마다 번호가 생성되는 것을 볼 수 있습니다.그냥 첨부해도 되지만 번호를 보여준다는 것은 사용자들로 하여금 올바르게 작동되고 있다는 것을 인식시켜줍니다. 제가 문득 카카오그룹의 사진을 첨부하며 본 것을 간단하게 만들어봤습니다. 출처: https://akaisun.tistory.com/12?category=622886 [아카이의 개발창고]
ButterKnife란? 스퀘어 개발자인 JakeWharton이 만든 어노테이션 프로세싱을 이용한 오픈소스 라이브러리 기존의 코드public class TestActivity extends AppCompatActivity { private TextView textView1; private TextView textView2; private TextView textView3; private TextView textView4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); textView1 = (TextView..
안드로이드 개발을 하면 플레이스토어에 앱을 등록해야 합니다.하지만 그냥 등록하는 것이 아니라 개발자 등록과정을 거쳐야 하는데요. 개발자 등록을 위해서는 아래의 주소로 접속하시면 됩니다. 구글플레이 개발자콘솔 - https://play.google.com/apps/publish 구글 계정으로 로그인을 하게 되면 개발자 등록을 위한 step by step이 기다리고 있습니다.구글 플레이스토어의 개발자 등록은 1회만 하면 되며, 가격은 25달러 한화로 약 2만 5천원정도입니다. 환율에 따라 틀려질 수 있으니 유념하세요. 개발자 등록을 함과 동시에 결제를 해야 하는데요. 결제수단은 카드밖에 되지 않습니다. 신용카드가 없어도 visa마크가 붙은 체크카드도 가능하니 참고하시길 바랍니다. 결제를 함과 동시에 카드상태..
안드로이드에서는 Activity간 Data 공유를 Intent라는 객체를 사용해서 구현한다. Intent는 명시적 Intent와 암시적 Intent가 있다. Intent에 대한 자세한 설명은 제외하고 이번 포스팅에서는 Intent를 사용해서 Activity간 Data 공유하는 방법을 설명한다. PutActivity에서 이름, 나이 입력 후 Data객체 생성 후 GetActivity로 Data를 전송한다고 가정하자1. PutActivity (데이터 전송 화면)Data.java?12345678910111213141516package com.woniper.example; import java.io.Serializable; public class Data implements Serializable { publi..
안드로이드에서 Selector를 xml로 만들어서 Button이나 ListView 등 클릭 이벤트가 들어가는 View에 적용할 수 있다. 기본으로 제공하는 View를 특별히 커스텀하게 사용하지 않는 이상 기본 제공하는 Selector기능을 사용할 수 있지만, View를 커스텀하게 사용하는 경우가 대부분이기 때문에 Selector를 사용해야한다. 예를 들면 Button을 눌렀을때(pressed)와 누르지 않았을 경우(nonPressed)에 이미지, 또는 색을 다르게 구분하고 싶을때 사용하는 것이 바로 Selector이다. 1. Drawable 폴더 생성안드로이드 프로젝트를 생성하면 기본적으로 drawable 폴더는 추가 되어 있지 않기 때문에 사용자가 추가해 주어야한다. res폴더 밑에 drawable 디..
이번 포시팅은 앱의 로딩 화면을 몇초 동안 띄우고 그 후에 앱을 사용할 수 있는 것이다. 예를 들면 아래와 같이 국민앱인 카카오톡과 같이 카톡을 처음 실행하면 아래 이미지가 로딩된 후 카톡을 사용할 수 있다. 로딩의 장점이라면 로딩하는 시간동안 앱의 기본 설정을 셋팅 할 수 있고, 홍보(?) 효과도 있는것 같다. 자 이제 소스를 보자 레이아웃은 다른 activity 레이아웃과 같이 로딩하고 싶은 이미지로된 레이아웃을 하나 만든다. ?1234567891011121314151617181920212223242526import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;im..
안드로이드 폰에서 현재 기기의 언어 설정값을 가져오는 방법은 아래와 같습니다. Locale.getDefault().getLanguage()); Locale.getDefault().getISO3Language()); Locale.getDefault().getCountry()); Locale.getDefault().getISO3Country()); Locale.getDefault().getDisplayCountry()); Locale.getDefault().getDisplayName()); Locale.getDefault().toString()); Locale.getDefault().getDisplayLanguage()); 자주 쓰이는 한국어, 영어, 중국어, 일본어 만 정리해보았습니다. 한국어 영어중국어일..