반응형
반응형

안드로이드 스튜디오에서 SVN 사용하기


* 안드로이드 스튜디오 신규 프로젝트 생성 (Create new android studio project)
  1. File > New > New project
  2. Application name 지정 > Next
  3. Select the from factors your app will run on > Phone and tablet > IceCreamSandwich 4.0 > Next
  4. Activity 종류 선택 > Empty Activity > Next
  5. Activity Name 지정 > Finish
  6. 새로운 프로젝트 생성 중....
  7. 신규 프로젝트 생성 완료
* 안드로이드 스튜디오 SVN 초기 설정 (SVN 연결)
  1. https://www.visualsvn.com/downloads/ 에서 Apache Subversion command line tools 다운로드 
  2. 안드로이드 스튜디오 실행
  3. File > Settings > Subversion > General > Use command line client에서 svn.exe 파일로 경로 지정 > 저장
  4. 완료
* SVN 체크아웃 (Check-Out)
  1. File > New > Project form version Control > Subversion 선택
  2. Repositories + > Repository URL 입력 > OK 
  3. 해당 SVN 링크 옆에 ▶ 클릭 > 로딩 > SVN 계정 정보 입력 > 성공
  4. check-out 받을 프로젝트 폴더 위에서 > 마우스 오른쪽 > Check-out
  5. Destination Directory > 해당 프로젝트를 check-out 받을 경로 지정
  6. SVN Checkout Options > android-project path\trunk or 상위로 설정 > OK 
  7. Android Subversion working Format 1.8 기본 포맷 선택 후, 확인
  8. 완료
project check-out 후, 기존 gradle로 설정시
  1. Import Project > Import project from external model > Gradle 선택 > Next 
  2. Gradle Home setting > Use local gradle distribution > Finish
    1. gradle home path : android-studio\plugins\gradle
    2. 안드로이드 스튜디오 설치 파일에 함께 내장되어 있음
  3. 완료
project check-out 후, 새로운 프로젝트 생성시 
  1. create project from exstring sources > Next
  2. Project name과 Project location 확인 후 > Next 
  3. 계속 Next > Finish
  4. 'Schdule for Addtion, Do you want to schedule the following file for addtion to subverison?' .... '
  5. No - 
* SVN 커밋 (Commit)
  1. VCS > Commit Changes...
  2. Commit할 폴더 위에서 마우스 오른쪽 > Subversion > Commit DIrectory 
* SVN Sync 맞추기
  1. VCS > Update Poroject...
* 신규 또는 기존 프로젝트를 SVN에 Import하기
  1. SVN에 Import할 프로젝트 준비
  2. VCS > Import into Version Control > Import into Subversion
  3. Import할 Repositories 선택 > trunk > Import
  4. Import할 Project의 경로 지정 > OK
  5. Commit 메시지 설정 > OK
  6. SVN 버전 설정 > OK
  7. 완료
※ 안드로이드 스튜디오에서 SVN을 사용할 수는 있지만, 이클립스에서 사용하던 프로젝트를 안드로이드 스튜디오에서는 구동시킬 수 없다. 기존 프로젝트엔 gradle도 없고, 프로젝트 셋팅이 다르기 때문에 새롭게 해주어야 한다.

Import Error 

Cannot checkout from svn: svn E155000: '경로' is already a working copy for diffent URL.



관련 게시물

참고 링크


반응형

#안드로이드 스크롤뷰 사용법 (Android scrollview)



// 스크롤 - 스크롤 처리에 대한 부분

listview.setOnScrollListener(new AbsListView.OnScrollListener() {

    @Override

    public void onScrollStateChanged(AbsListView absListView, int i) {

        // 상태에 대한 콜백 메소드

    }

    @Override

    public void onScroll(AbsListView absListView, int i, int i1, int i2) {

        // 스크롤 행위에 대한 콜백 메소드


        // 데이타가 정상적으로 다 보여졌을 때

        if (absListView.isShown()) {

            // 마지막 아이템까지 모두 보았을 경우, 페이지 추가 로드

            if(totalItemCount != 0 && (firstVisibleItem+visibleItemCount) == totalItemCount && lastitemVisibleFlag == false) {

                try {

                    // 다음 페이지 로드하는 비즈니스 로직 처리

                } catch (IOException e) {

                    e.printStackTrace();

                }

            }

        }

    }

});


반응형

# Layout Inflater : https://developer.android.com/reference/android/view/LayoutInflater.html

안드로이드에서는 화면을 구성하는 방법으로  xml 레이아웃을 사용하는데, 이 xml 레이아웃 파일의 내용은 애플리케이션이 실행될 때 메모리로 로딩되어서 객체화 된다. xml 레이아웃에 정의된 내용을 메모리 상에 객체화되는 과정을 '인플레이션(inflation)' 이라고 한다. 

즉, xml 레이아웃 파일은 프로젝트가 빌드되는 시점에 이진 파일로 컴파일되어 애플리케이션에 포함되긴 하지만, 

실제로 실행시점이 되어서야 메모리에 로딩되어 객체화가 된다는 말이다.


예제 1)

onCreate(bundle saveInstanceState){

super.onCreate(saveInstanceState);


// 버튼 호출

setContentView(R.layout.activity_main); 

}

setContentView전에 button을 호출하게 된다면 당연히 오류가 난다. 

메모리상에 객체화 (로드) 되지 않은 데이타를 호출하려고 했기 때문에 오류가 나면서 애플리케이션이 중지된다.


즉, setContentView() 메소드의 역할은

  1. 화면에 나타낼 뷰를 지정
  2. xml 레이아웃의 내용을 메모리상에 객체화

그렇다면, 화면 전체에 나타낼 xml 레이아웃이 아니라 전체 화면 중에서도 일부분만 차지하는 화면 구성 요소들을 xml 레이아웃에서 로딩하여서 보여줄 순 없을까? 있다. 다만, 다른 메소드를 사용해야한다.  layoutInflater 라는 클래스를 사용하여서 해야한다. (페이지 216~)


예제 2)

getSystemService(Context.LAYOUT_INFLATER_SERVICE)

이렇게 layoutInflater를 참조시킨 후에 사용이 가능하다. 


참고 링크

  • 안드로이드 앱 프로그래밍
  • 안드로이드 개발자 센터 


반응형

#액티비티 (Activity) : https://developer.android.com/reference/android/app/Activity.html





안드로이드 생명주기 사용법

public class Activity extends ApplicationContext {

     protected void onCreate(Bundle savedInstanceState);

     protected void onStart();

     protected void onRestart();

     protected void onResume();

     protected void onPause();

     protected void onStop();

     protected void onDestroy();

 }

생명주기 메소드에 대한 설명

  1. onCreate()
    • Activity  초기화 및 화면 설정
  2. onRestart()
    • App이 재시작될 때 호출되는 함수로, onStart() 직전에 호출
  3. onStart()
    • 액티비티가 사용자에게 보이기 직전에 호출
  4. onResume()
    • 사용자와 상호작용을 하기 전에 호출되는 함수
    • Activit 스택의 맨 위에 있어서 Activity가 사용자에게 보여지고, 사용자의 입력을 처리할 수 있을 때 호출
  5. onPause()
    • 다른 Activity가 호출될 때 호출된다. 
    • 데이터 저장 및 스레드 중지 등의 처리를 하기에 좋은 메소드
  6. onStop()
    • 더이상 Activity가 스택의 최상 위에 있지 않을 때 즉, 사용자에게 보이지 않게 될 때 호출
    • 메모리가 부족할 경우, onStop() 메소드가 호출되지 않을 수도 있다.
  7. onDestory()
    • Activity를 종료/소멸될 때 호출
    • finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해서 액티비티 제거시 호출됨



+ Recent posts