반응형

출처: http://www.kmshack.kr/2017/03/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EA%B0%9C%EB%B0%9C-%EC%8A%A4%ED%82%AC%EC%9D%84-%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%A4%EB%8A%94-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%95%B1-20%EA%B0%80/\\




읽는다는 것은 배움에 있어서 가장 좋은 방법입니다. 개발자에게도 마찬가지입니다. 더 발전하는 개발자가 되고 싶다면 많은 코드를 읽어야 합니다. 이것 만큼이나 간단한 방법은 없습니다.

책, 블로그, 커뮤니티에도 좋은 읽을거리가 많이 올라오지만 하나의 앱을 작동하는 전체 앱은 훨씬 더 완벽하게 배울 수 있습니다. 이 글을 통해 다양한 카테고리 및 장르 중 최고의 오픈소스 안드로이드 앱을 소개하고 학습에 필요한 부분에 대해 살펴보겠습니다. Play 스토어에서 직접 앱을 사용해 보고 구현된 코드를 직접 볼 수 있습니다. 각 앱에 첨부된 난이도를 통해 자신의 역량에 따라 선택하셔서 보시길 추천합니다.

LeafPic

(Github | Play 스토어 | 난이도: 초급)

안드로이드 기기에서 찾아볼 수 있는 가장 흔한 사진 및 동영상 갤러리 앱입니다. 오픈소스로 공개되어 있는 최고의 갤러리 앱 중 하나입니다. 아주 간단하며 이해하기 쉽기 때문에 초급 개발자에게 적합합니다. 또한 동적 테마를 구현 방식을 사용하기 때문에 이와 관련된 기능을 배울 수 있습니다.

Simple Calendar

(Github | Play 스토어 | 난이도: 초급)

Kotlin을 사용하여 작성된 간단하고 사용하기 쉬운 달력앱입니다. Kotlin을 배우고자 한다면 가장 좋은 방법 중 하나가 될것 입니다. 이 프로젝트에서 배울 수있는 점은 완전히 새로운 언어로 개발해 볼 수 있다는 것과 안드로이드 위젯을 만들수 있다는 것입니다.

Amaze File Manager

(Github | Play 스토어 | 난이도: 중급)

거의 모든 안드로이드 기기에서 볼 수 있는 파일 관리자 앱입니다. 파일 관리자 앱은 모든 안드로이드 플랫폼과 모든 기기에서 사용할 수 있는 멋진 호환성을 자랑합니다. 특히, 플랫폼 버전에 따라 SD카드 마운트를 처리하는 방법을 배울 수 있습니다. 그러나 이 프로젝트에서 사용된 코딩 표준을 따르지 않는 것이 좋습니다.

Easy Sound Recorder

(Github | Play 스토어 | 난이도: 초급)

간단하고 사용하기 쉬운 사운드 레코드 앱입니다. 안드로이드에서 오디오 녹음과 컨트롤에 대해 배우고 싶다면 처음으로 접하기 가장 좋은 프로젝트입니다.
매우 작은 규모의 프로젝트로 이해하기도 매우 쉽습니다. 덤으로 머티리얼 디자인의 기초를 배울 수도 있습니다.

MLManager

Github | Play 스토어 | 난이도: 초급)

MLManager는 안드로이드 기기를 위한 앱 관리 기능을 가진 앱입니다. 기기에 설치 괸 앱에 대한 상세한 정보를 얻거나 APK를 추출하며, 제거 기능을 배울 수 있습니다. 코딩 표준을 잘따라 작성되었으며, 머티리얼 디자인 가이드라인을 적용하여 심플한 모습을 갖추었기 때문에 좀 더 좋은 아이디어를 얻을 수도 있습니다.

PhotoAffix

(Github | Play 스토어 | 난이도: 초급)

사진을 가로또는 세로로 회전하여 편집할 수 있는 매우 간단한 앱입니다. 안드로이드 개발의 기초를 배우기 위해 적합하며 코딩 표준을 잘 지키고 있습니다. 기초를 바탕으로 나중에 복잡한 사진 뷰어를 만들기 위해 유용한 방법은 많이 배울 수 있습니다.

MovieGuide

(Github | 난이도: 중급)

영화 예고편 및 리뷰로 인기 있는 영화를 보여주는 간한단 앱입니다. MVP모델을 도입하였으며 클린 아키텍처를 돕는 RxJava, Dagger2를 사용하였습니다. 매우 간단한 프로젝트이지만 최신 유행 중인 기술을 배울 수 있는 좋을 기회를 제공합니다.

AnExplorer

(Github | Play 스토어 | 난이도: Intermediate)

파일 관리자의 앱이며 태블릿 지원을 위해 필요한 사항들을 배울 수 있습니다. 파일 처리, Rooting 관리, Loader, 커스컴 View 등을 배울 수 있습니다.

Minimal ToDo

(Github | Play 스토어 | 난이도: 초급)

초보자에게 아주 적합한 프로젝트입니다. 안드로이드의 기본적인 부분을 대부분 배울수 있습니다. 단, 코딩 표준은 지켜지지 않았으며 패키지 구조 또한 배우지 말아야 합니다.

Timber

(Github | Play 스토어 | 난이도: Advanced)

아름답게 디자인된 안드로이드 음악 재생앱입니다. 로컬 음악을 보여주고 음악을 재생합니다. 이 프로젝트는 매우크며 초보자에게는 어려우며 중급자 이상이면 배울만할것 입니다.

AnotherMonitor

(Github | Play 스토어 | 난이도: 중급)

안드로이드 프로세스, 메모리 사용량, CPU사용량 및 이와 관련된 것들을 모아 모니터링 하는 프로젝트입니다. 이해하기 쉽고 작지만 코딩 표준, 아키텍처 및 전체 디자인은 배우지 말아야할 부분입니다.

InstaMaterial

(Github | 난이도: 초급)

머티리얼 디자인 가이드를 잘 적용하여 관련된 스킬을 배우기 좋은 프로젝트입니다. Instargram 앱의 일부를 동일하게 구현하려고 시도했으며, 머티리얼에 사용된 애니메이션, 트렌지션을 배울 수 있습니다. 이해하기 쉬우며 간단하며 설계 능력을 향상하기 위해 이상적입니다.

CoCoin

(Github | 난이도: 쉬움)

개인 금융및 회계솔루션 프로젝트입니다. 데이터 관리하는 방법과 그 데이터를 바탕으로 아름다운 차트를 커스컴 View를 통해 보여줍니다.

OmniNotes

(Github | Play 스토어 | 난이도: 중급)

Evernote와 같은 완벽한 기능을 가진 노트작성 앱입니다. 노트 공유및 검색, 이미지, 비디오, 오디오를 첨부 할 수 있으며, 스케치, 미리알림등 많은 기능이 구현되어 있는 상당히 큰 규모의 프로젝트입니다. 또한 Google Now와 완벽히 통합된다는 점에서 많은 것을 배울 수 있습니다.

Clip Stack

(Github | Play 스토어 | 난이도: 초급)

클립보드(복사) 관리자 앱입니다. 프로젝트는 아주 단순하며 작습니다. 프로젝트에 사용된 패키지 구조나 아키텍쳐 등은 표준이 아니기 때문에 배우지 않았으면 좋겠습니다. 이 프로젝트는 안드로이드의 기본 기능을 잘 활용한 좋은 아이디어를 바탕으로 매우 간단하게 만들어졌다는 점에서 배울만합니다.

Super Clean Master

(Github | 난이도: 고급)

클린 마스터는 안드로이드 유저라면 한 번씩 사용해본 경험이 있을 것입니다. 성능 향상을 위해 불필요한 데이터를 정리하는 앱입니다. 프로젝트 전반적으로 약간 복잡하고 코드를 이해하기 위해 약간의 시간이 필요합니다. 고급자에게 추천합니다.

Travel Mate

(Github | 난이도: 중급)

여행 기반의 앱으로 위치와 지도에 대해 많은 것을 배울 수 있는 프로젝트입니다. 디자인과 코드품질을 그렇게 좋지는 않지만 지도와 위치정보를 어떻게 다루는지에 대해 초보자와 중급자들에게는 많은 배움거리가 될 것 같습니다.

KISS

(Github | Play 스토어 | 난이도: 중급)

정말 가벼운 런처 응용 프로그램입니다. 런처를 만들고 싶다면 이것으로 시작하기좋습니다.

Turbo Editor

(Github | Play 스토어 | 난이도: 중급)

심플한 텍스트 편집 앱입니다. 프로그래밍 언어 구문에 대해 보기편한 뷰어를 지원합니다. 큰 텍스트 파일인경우 한번에 메모리에 올리지 않고 구간별로 잘라서 처리하는 섬세함까지 보여줍니다.

Wally

(Github | 난이도: 초급)

웰페이퍼(배경화면) 앱입니다. 매우 간단하지만 웰페이퍼앱을 만들고 싶은 초보 개발자들에게 매우 유용합니다.

Pedometer

(Github | 난이도: 초급)

하드웨어 센서를 이용하여 만보계의 기능을 구현한 앱입니다. 최적화를 통해 기기의 배터리 성능에 거의 영향을 주지 않습니다. 좋은 프로젝트이긴 하나 코딩 표준과 디자인면에서는 좋지 않습니다.

안드로이드의 기본적인 기능을 구현하기 위해 필요한 대부분의 장르의 오픈소스를 몇 가지 살펴보았습니다. 이 오픈소스를 통해 개발 스킬을 향상하는데 도움이 되었으면 합니다.

반응형
반응형

출처: http://itpangpang.tistory.com/195


늘은 오픈소스 관련해서 글을 써보려고 합니다. 전에 한번

    안드로이드 스튜디오에서 github 연동하는 글을 썼었는데 

    이번에는 github에 있는 오픈소스들을 사용(또는 참여)하는 

    방법을 알아보겠습니다.


ㆍ 요즘 개발하는 시간 중 30%는 오픈소스(외부라이브러리)

    관련해서 시간을 보내는것 같습니다. 

    대부분 github에서 stars순으로 나열해서 보곤 하는데...


    이렇게 많은 시간 github를 돌아다니는 이유는 

    다른 사람들이 공개한 코드들을 보고 있으면 정말 배울게 많은 것 같습니다..

    생각지도 못한 방향의 코딩스타일이라고 해야하나... 

    정말 깔끔하게 짜는 개발자분들도 많고, 좀 복잡하게 구현하지만 쉬운기능도 완벽하게 짜는 개발자분들..

    xml 전혀 사용안하고 처음부터 끝까지 전부 자바코드로만 layout 잡는 개발자분들..


    저번글에서도 비슷한 얘길 했었는데 저는 처음에 다른 사람의 코드는 최대한 안쓰자라고 생각했었는데

    개발경험이 쌓일수록 오픈소스는 많이 써야한다는 생각으로 점점 바뀌고 있습니다..

    뭐 물론 무조건 가져다가 쓰자는건 아니고.. 


    제가 생각하기에는 오픈소스 하나 제대로 분석하는것이 오히려 직접짜는것보다 도움이 많이 된다고 생각합니다.

    제대로 분석한다는 것은 한줄한줄 어떤 식으로 쓰였는지 보면서 이것저것 조금씩 바꿔가면서 테스트해서 완전히

    내 것으로 만든다는 의미입니다.


    그리고 오픈소스 사용을 추천하는 이유는 아무래도 직접 짜는것보다 완성된 코드를 사용하는 것이 성능면에서 좋을 

    확률이 높다고 생각합니다.


    뭐 말이 길어졌는데 결론은 다른 사람들이 잘 짜 놓은 코드를 배워서 실력을 높이자 입니다..



뭐 제목에 

오픈소스 사용해보기인데

사실 그냥 다운받아서

import만 하면 되는거라

간단하게만 보겠습니다


일단 Github에 접속한 후 원하는 것을 검색한다


https://github.com/


뭐 일단 접속해서

원하는 부분을 검색하면 됩니다


RecyclerView면 android RecyclerView

또는 그냥 RecyclerView


Camera면 android Camera

다른 언어랑 겹치는 부분은

android라고 써주는게 좋겠죠?


원하는 대로 Sort한다


그 다음 

개인차이가 있겠지만

저는 Sort를 항상 

Most stars로 놓은후에 둘러본답니다.


정렬을 하면 

stars가 높은순서대로

나옵니다


프로젝트를 선택해서

들어가면 보통

Text,스크린샷이나

gif등으로 기능에 대한

설명이 나와있습니다.


그리고 여기서 중요한

라이선스!!에 관한 내용도 있습니다.

이 부분이 정말 중요하죠..

탐방이 아니라 실제 나의 프로젝트에

적용하려면..


단순히 자체 라이선스만 놓고 보는게 아니라

호환성까지 신경써야 하므로 실제 적용시키려면

꼼꼼히 살펴야 하는 부분이 있습니다.


어쨋든 직접 체험해보고 싶은

프로젝트들이 있으면

압축파일을 다운받습니다


Download ZIP



이렇게 받은 압축파일을

압축을 푼 후에

안드로이드 스튜디오로 들어가서

import project

해주면 끝난답니다.


Import Project



이런 식으로 Import Project를

누른후에


압축을 푼 project를 선택해줍니다.

보통 압축을 풀고

압축을 푼 폴더 아래폴더를

import 해주면 될 것입니다.


그럼 Import가 잘 될겁니다.

가끔 해당 sdk 설치가 안되있다고

에러가 뜨는 경우가 있는데

에러내용에 필요한 sdk 다 적혀있으니

설치해주면 됩니다.


오픈소스 참여하기


이 부분은 github 가입하고 

안드로이드 스튜디오랑 연동시키신

분들만 가능합니다.


아까 다운받는 부분에서

다운 대신 위에

URL 주소부분이 있습니다


여기에 있는 URL을 복사하셔서

안드로이드 스튜디오를 시작시킨후에

웰컴화면에서


위와 같이 GitHub를 선택합니다.


그럼 계정 비밀번호를 확인하고

다음으로 넘어가면


주소를 적는 창이 하나 뜹니다


여기다가 아까 복사한

URL을 붙여넣기 하신후에

Clone을 하면


프로젝트가 열리게 됩니다.

이 상태에서 작업을 하신후에

github에 push를 하시면


URL복사를 한 프로젝트에서

commit 부분에 올라가게 됩니다


그럼 다른 사람들도 우리가 

수정한 코드를 볼 수 있고

사용할 수 있게 됩니다.



뭐 일단은 여기까지

안드로이드 스튜디오에서

오픈소스 사용하는 방법에

대해 알아봤습니다.


다음글부터는 유용한 오픈소스를

하나씩 사용해보려고 합니다.

그럼 이만~



해당글에서 문제되는 부분이 있으면 

즉시 삭제하겠습니다



반응형
반응형

출처: http://gun0912.tistory.com/3



ANDROID WEEKLY




일주일에 한번씩 등록해놓은 이메일로 한주간의 안드로이드관련 이슈들을 정리해서 보내줍니다.

뿐만 아니라 Jobs, events등의 각종 안드로이드관련 정보를 보내줍니다.

홈페이지에 들어가면 지나간 이슈들에 대해서도 확인해볼 수 있습니다.

단순히 라이브러리정보만을 제공해주는데 그치지 않고 안드로이드 개발을 체계적으로, 그리고 효과적으로 할수있도록 여러가지 방법으로 도움이 되는 블로그 글들이 많이 있습니다.

한국시간으로 월요일 새벽즈음에 weekly메일을 보내주고 있습니다.

매번 좋은 개발 블로그 글이나 라이브러리를 찾는것이 귀찮다면 일주일에 한번 이 Android Weekly만 확인해도 많은 도움이 될것이라고 생각합니다.


http://androidweekly.net/








Android Arsenal



EPL에 Arsenal이 있다면 Android에는 Android Arsenal이 있습니다.

저는 너무 많이 들어가서 크롬에서 [arsenal]이라고만 쳐도 이 사이트를 가겠냐고 묻듯이 최상단에 사이트가 추천검색 사이트로 뜨고 있습니다.


제가 알고있는 라이브러리 모음 사이트중에서 가장 많은 라이브러리를 보유하고있고 라이브러리가 최신으로 업데이트 되는속도도 어마무지하게 빠릅니다.

(이 사이트를 운영하시는 분들은 저런 라이브러리를 매일 어떻게 찾아내고있는지 궁금합니다)


저는 안드로이드 개발을 하면서 라이브러리활용에 적극적입니다.

물론 자체 기술개발을 하면 좋겠지만 빠르고 효과적인 안드로이드 앱 개발을 지향하기 때문에 이미 잘 만들어져 있는 라이브러리를 적극 활용하고 있습니다.


저는 처음부터 거의 모든 라이브러리를 보았기때문에 최근에는 최근업데이트 순으로 최근의 라이브러리들만을 확인하고 있습니다.

처음 이 사이트를 접하시는 분이라면 Rating순으로 정렬하셔서 자신이 몰랐던(혹은 찾아 헤맸던) 유용한 라이브러리들을 확인하시면 됩니다.

카테고리별로도 라이브러리를 확인해볼수 있어서 내가 필요한 분야의 라이브러리들만을 모아서 보는 방법도 유용합니다.


https://android-arsenal.com/






appance



정확히는 안드로이드 라이브러리만을 위한 사이트는 아닙니다.

안드로이드 뿐만 아니라 iOS, Windows Phone, 기타OS에 관한 디자인 및 개발관련 정보를 모아둔 사이트입니다.

이미 거의 모든 라이브러리들을 Android Arsenal에서 확인할수 있지만 간간히 Android Arsenal에는 없는 유용한 라이브러리들을 발견하는 경우도 있습니다.


http://www.appance.com/








JakeWharton






제가 정말정말 사랑하는 개발자 입니다.

안드로이드 개발을 예전부터 좀 해오신 분들이라면 ActionBar Sherlock, NineOldAndroids, ViewPagerIndicator, Butter Knife등등 유용한 라이브러리들을 알고 계실겁니다.

유명한 라이브러리들을 만든 개발자이면서도 꾸준히 유용한 라이브러리를 내놓고 있습니다.

github에서 이슈에 대해서 많은 피드백으로 점점 라이브러리에대한 완성도를 높여주고 있습니다.


https://github.com/JakeWharton







Square



제가 정말정말 사랑하는 오픈소스 라이브러리 회사입니다.

4번에서 언급드렸던 jake Wharton이 속해있는 회사이기도 합니다.

자신들이 서비스를 하고 있음에도 불구하고 자신들의 기술을 오픈소스형태로 내놓고 있습니다.

제가 개발중인 안드로이드 앱에서 Square에서 내놓은 라이브러리들중의 대부분을 사용하고 있습니다.

그중에서 정말유용한 라이브러리들을 몇가지 소개해드립니다.

( 각각의 라이브러리들에대해서 자세히 포스팅할 예정입니다. )

Picasso: UIL, Glide등과 더불어 이미지로딩 라이브러리에서 대세를 이루고 있는 라이브러리

Retrofit: 서버와 API통신 할때 정말 심플하고 쉽게 통신할수 있도록 도와주는 라이브러리

Otto: Event Bus개념으로 특정 이벤트가 발생할때까지 대기하고있다가 해당 이벤트가 발생하면 함수를 실행시켜주는 라이브러리





http://square.github.io/















기타

2번 Android Arsenal, 3번 appance처럼 유용한 라이브러리들을 모아둔 사이트들 입니다.

2,3번과 성질은 비슷한 사이트들이기때문에 설명은 생략하겠습니다.


http://controlsandroid.com/


https://android-libs.com/


http://www.java2s.com/Open-Source/Android_Free_Code/



반응형
반응형

출처: http://th3-incognito-guy.blogspot.kr/2014/09/drozer-security-attack-framework-for.html


What is Drozer?

Drozer is a Security & Attack Framework for Android Application Testing. Drozer is a tool that can be used for Mobile device review , Secure development of applications, BYOD approval and Mobile application testing.

There are 2 Versions of Drozer an Open Source and other one Pro version having following features

  1. Gathering the information about the application
  2. Find the attack surface
  3. Test your Exposure to Public Exploits
  4. Execute dynamic code on a device, to avoid the need to compile and install small test scripts.
  5. Start Android emulators, provisioned with the drozer Agent and the app you want to investigate.
  6. Simulate sensor input, such as GPS, to emulators to test the full attack surface.
  7. View the attack surface as a graph. this will be helpful for the risk assessment reporting.
Drozer is having agent & server architecture so to start with assessment we have to install the agent in the emulator or connected device.

Command to install the Drozer agent on emulator or device

adb install drozer.apk

Start the service on the emulator or device


then give below command

adb forward tcp:31415 tcp:31415

open cmd and browse to drozer directory

To check drozer functionality or device connected

drozer console devices

To connect to the device or emulator

drozer console connect

To search for an app

run app.package.list -f [keyword]

To get info of an app

run app.package.info -a [package name]

To check the attack surface 

run app.package.attacksurface [package name]


To get info about the activity 

run app.activity.info -a [package name]

To start the activity 

run app.activity.start --component[package name] [activity name]

To get info about providers 

run app.provider.info -a [package name]

To find uri for providers 

run app.provider.finduri [package name]

To get info from providers 

run app.provider.query [uri]

To check path traverssal vul in provider 

run scanner.provider.traversal -a [package name]

To check for Sql injection 

run scanner.provider.injection -a [package name]

To download a file from android device to local machine 

run tools.file.download [source path] [destination path]


To get info abt a service 

run app.service.info -a [package name]


To interact with the service 

run app.service.send [package name] [service name] --msg [msg to service]


To interact with broadcast receiver

run app.broadcast.send --action [action from android_manifest file] --component [package name] [broadcast reciever] --extra string[string to send like in sendind sms we can send phone number for that we need to check source for input parameter]
For eg: run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS --component org.owasp.goatdroid.fourgoats org.owasp.goatdroid.fourgoats.broadcastreceivers.SendSMSNowReceiver --extra string phoneNumber 5554 --extra string message U R Just PWNED!!!!!


반응형

+ Recent posts