본문 바로가기

전체 글

[안드로이드] 디컴파일 실습 디컴파일 관련 툴 apk 파일을 java 코드로 보려면 .dex 파일을 dex2jar를 사용하여 .jar 파일로 디컴파일한 후 .jar(.class 파일들의 모음) 파일을 .java 파일로 바꾸는 과정이 필요합니다. 하지만 jd-gui를 사용하면 간편히 디컴파일 할 수 있습니다. 1. Apk Easy Tool 다운로드: https://forum.xda-developers.com/android/software-hacking/tool-apk-easy-tool-v1-02-windows-gui-t3333960 2. Dex2Jar: 앱 파일의 확장자 dex를 jar로 변환 다운로드: https://github.com/pxb1988/dex2jar 3. jd-gui 다운로드: http://java-decompiler.. 더보기
후기 보호되어 있는 글입니다. 더보기
Relative Layout에 대하여 Relative Layout 이란? RelativeLayout은 상대 위치에 하위 뷰를 표시하는 뷰 그룹입니다.[1] 화면에 이미 출력된 특정 뷰를 기준으로 방향을 지정하여 배치합니다. RelativeLayout을 사용하면 하위 뷰는 상위 뷰 또는 서로 다른 뷰(ID로 구분)에 상대적인 위치를 지정할 수 있습니다. 따라서 두 요소를 오른쪽 테두리로 정렬하거나 위아래로 나란히, 화면 중앙에, 왼쪽 가운데 등으로 정렬할 수 있습니다. 기본적으로 모든 하위 뷰는 레이아웃의 왼쪽 상단에 그려지므로 RelativeLayout.LayoutParams에서 사용할 수 있는 다양한 레이아웃 속성을 사용하여 각 뷰의 위치를 정의해야 합니다. android:layout_above: 기준 뷰의 위쪽에 배치 android:la.. 더보기
안드로이드 통신 방법에 대하여 소켓 연결 소켓 연결방식에서는 클라이언트와 서버가 특정 포트를 통해 연결을 계속 유지하고 있기 때문에 실시간으로 양방향 통신을 할 수 있는데요, 주로 동영상 스트리밍이나, 온라인 게임등에서 사용되는 연결방식입니다. [1] 소켓은 네트워크 상의 두 프로그램 사이에서 일어나는 양방향 통신중 한 쪽의 엔드 포인트를 의미합니다. 여기서 엔드포인트란 IP와 포트의 조합을 뜻합니다. 서버와 클라이언트 간에 서로 연결이 되어 계속해서 데이터를 주고 받는 통신. 온라인 상태를 유지함 (ex/ 온라인 게임) 일반 자바 프로그램에서 구현하는 방법과 동일 사용자 접속 관리 등 많은 기능 구현해야 해서 서버 구현이 어려운 편 [2] HTTP 연결 HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니.. 더보기
[Andorid] MVVM Pattern 패턴 도입 목적 관심사를 분리하므로서 프로그램을 더 안전하면서 확장가능하기 쉽게 만들기 위하여 MVC Model: 데이터와 비즈니스 로직, 앱의 두뇌 역할, UI와 관련 안된 부분 View: 사용자에게 보여지는 UI화면 Controller: View와 Model 사이의 상호작용을 관리하는 컨트롤 타워역할 외부에서 전달받은 입력을 처리하여 MVC 패턴에서는 Model과 View가 완전히 분리되므로 Model은 쉽게 테스트 가능 Controller가 안드로이드에 종속되기 때문에 테스트가 어려워짐 안드로이드 특성상 액티비티가 View표시와 Controller 역할을 같이 수행해야 하기 때문에 두 요소의 결합도가 높아짐 많은 코드가 Controller로 모이게 되어 액티비티가 비대해짐 MVP Presenter .. 더보기
URI Scheme, AppLink, Deferred depp Link 정의 1. URI Scheme 앱에 URI 스킴(scheme) 값을 등록하여 딥링크 사용 URI Scheme은 딥링크의 가장 초기 형태로, 가장 일반적으로 사용되는 딥링크 방식이라고 할 수 있습니다. 앱을 개발하는 주체가 각 앱 내 특정 페이지마다 고유한 주소(링크)를 자유롭게 설정하여, 해당 주소(링크)를 클릭하면 앱이 열리고 특정 페이지가 열리는 형태입니다. 인터넷에서 흔히 사용하는 URL 주소처럼 링크를 클릭하면 특정 웹사이트가 열린다고 생각하면 쉽습니다. 이때 URL은 대개 http:// 혹은 https:// 로 시작된다면, URI Scheme은 각 모바일 앱에서 지정한 Scheme 값으로 시작합니다. 2. App Link 도메인 주소를 이용한 딥링크 사용 App Links는 Android에서 제공되는.. 더보기
안드로이드 url scheme 딥링크 홈페이지가 아닌 홈페이지 내에 특정 화면에 한 번에 도달할 수 있는 링크 연결되거나 검색되어 들어간 사이트의 최상위 페이지 즉, 홈페이지를 제외한 나머지 모든 웹 페이지로 가는 하이퍼링크(hyperlink). 딥(deep)은 한 사이트에 있는 웹 페이지의 계층 구조 내에 있는 페이지의 깊이를 가리키는 말로 계층 구조 내의 최상위 페이지, 즉 홈페이지 아래에 있는 페이지라면 어떠한 것이라도 딥이라고 간주됩니다. [1] 딥링크의 3가지 방식 URI 스킴 방식 : 앱에 URI 스킴(scheme) 값을 등록하여 딥링크 사용 앱링크(App Link) : Android 제공 - 도메인 주소를 이용한 딥링크 사용 유니버셜 링크 (Universal Link) : iOS 제공 - 도메인 주소를 이용한 딥링크 사용.. 더보기
webView에서 window.open(), window.close() 처리 webView에서 window.open(), window.close() 처리 방법: webChromeClient를 사용하여 해결합니다. dialog를 사용하는 방식이 있으나 mWebViewPop에 새 창의 정보를 담아 FrameLayout에 추가하는 방식을 사용하였습니다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 추가할 부분: 앱은 새 창을 표시하는 방법에 주의해야 합니다. 기존 웹 보기 위에 단순히 창을 겹쳐서 표시하면 사용자가 보고 있는 사이트를 잘못 알 수 있습니다. 따라서 URL창을 구현하는 것이 맞습니다. [1] 전체 코드: https://gitlab.com/kingdom3/webview_window.open 참조: [.. 더보기