Android/Android TIP 2015. 7. 2. 11:00

1. 패키지 매니저 이용하는 방법

PackageManager m = getPackageManager();

String path = getPackageName();

try {

PackageInfo p = m.getPackageInfo(s, 0);

path = p.applicationInfo.dataDir;

} catch (PackageManager.NameNotFoundException e) {

}


2. ApplicationInfo 이용하는 방법

getApplicationInfo().dataDir;


3. /file 디렉토리에서 parent로 알아내는 방법

getApplicationContext().getFilesDir().getParentFile());

posted by 젊은쎄오
:
Android/Android TIP 2015. 4. 9. 13:48
- 클릭한 뷰의 context를 가지고 온다는 것과 new task 플래그 추가



holder.ll_row.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {


        Intent intent = new Intent(v.getContext(), NewActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        v.getContext().startActivity(intent);


     }
});


posted by 젊은쎄오
:
Android/Android TIP 2014. 7. 15. 17:49

private int dpToPx(Context context, int dp) {

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));

return px;

}


private int pxToDp(Context context, int px) {

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));

return dp;

}



소스 외 계산하고 싶다면


posted by 젊은쎄오
:
Android/Android TIP 2014. 7. 15. 17:27

자동으로 오버라이드 되는 함수로 애를 먹은 적이 많다. 


예를들어 BaseAdapter를 상속받아 오버라이드 되는 getCount()의 리턴값이 자동으로 0이 들어가지며


아무리 데이터를 넣어도 getCount를 찍어보면 리스트 사이즈가 0이 찍히는 경우 말이다.



이런경우를 미연에 방지할 수 있는 방법중 하나는 UnsupportedOperationException을 이용하는 것이다. 


UnsupportedOperationException은 개발자가 미처 신경쓰지 못한 함수를 crash까지 내주며 알려준다. ㄷㄷ


사용방법은 


Windows > Preferences > Java > Code Style > Code Templates > Code > Method body 로 이동 후


아래 박스에 


1
2
// ${todo} Auto-generated method stub
 ${body_statement}

이렇게 써있는 부분을 지운 후 


1
throw new UnsupportedOperationException();

이렇게 바꿔준다.


그럼 개발자가 만들던 오버라이드로 만들어지던 매소드 안엔 UnsupportedOperationException()이 자동으로 들어가지며


만약 신경쓰지 못하여 그대로 실행한다면 crash창이 뜨며 알려준다. 

posted by 젊은쎄오
:
Ubuntu 2014. 5. 27. 12:00

아래 명령어를 입력하고 내용을 수정한다. (xx 부분에 본인의 ip로 입력)


sudo vi /etc/network/interfaces


auto lo
iface lo inet loopback

auto eth0 
iface eth0 inet static 
address 192.168.1.xx  #본인 IP
netmask 255.255.255.0 
netwrok 192.168.1.0 
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 168.126.63.1 168.126.63.2 8.8.8.8



저장 후 아래 명령어로 restart

sudo /etc/init.d/networking restart



* 참고.

-  우분투는 GUI상의 시스템설정 > 네트워크에서 설정하는 것이 터미널에서 설정하는 것 보다 우선순위가

높음으로 GUI상에서 인터넷 설정하는 것이 바람직함

'Ubuntu' 카테고리의 다른 글

Ubuntu] 압축 파일을 우분투에서 푼 뒤 실행이 안될 때  (0) 2014.05.27
posted by 젊은쎄오
:
Ubuntu 2014. 5. 27. 11:57


리눅스와 윈도우 간에 파일 압축, 압축 풀기 등을 하다보면 설정된 권한이
모두 무시될 때가 있어 해당 폴더의 권한을 줘야한다.

해당 폴더 이동 후 차례대로 입력한다.

모든 권한을 주는 옵션이므로 임시 방법이다. 

/var/www# chmod 777 -R *

/var/www# chown -R root: *


'Ubuntu' 카테고리의 다른 글

Ubuntu] 우분투에서 고정 IP 설정하기  (0) 2014.05.27
posted by 젊은쎄오
:
Android/Android TIP 2014. 2. 20. 09:42

xml에서 


<string name="think">I can't believe</string>


 라고 입력하게 되면, 


error: Apostrophe not preceded by \ (in Can't delete the file) 이렇게 오류가 납니다.


특수문자를 사용하기 위해선 


<![CDATA["삽입할 특수문자"]]>  


이런식으로 사용해야 합니다.




ex ) <string name="think">I can<![CDATA["'"]]>t believe</string>


posted by 젊은쎄오
:
Android 2014. 2. 16. 21:37
FTP는 MainThread에서는 수행되지 않는다.

별도의 thread나 asynctask를 이용한다
try {

     FTPClient mFTP = new FTPClient();

     mFTP.connect("123.123.123.123", 21);  // ftp로 접속 
     mFTP.login("ftpuser", "password"); // ftp 로그인 계정/비번
     mFTP.setFileType(FTP.BINARY_FILE_TYPE); // 바이너리 파일
     mFTP.setBufferSize(1024 * 1024); // 버퍼 사이즈 
     mFTP.enterLocalPassiveMode(); 패시브 모드로 접속



    // 업로드 경로 수정 (선택 사항 )

     mFTP.cwd("public"); // ftp 상의 업로드 디렉토리
     mFTP.mkd("files"); // public아래로 files 디렉토리를 만든다 
     mFTP.cwd("files"); // public/files 로 이동 (이 디렉토리로 업로드가 진행)


     File path = new File("/sdcard/dcim/camera/"); // 업로드 할 파일이 있는 경로(예제는 sd카드 사진 폴더)
     if (path.listFiles().length > 0) { // 폴더를 가지고와 폴더 내부 파일 리스트를 만든다
          for (File file : path.listFiles()) {
               if (file.isFile()) {
                    FileInputStream ifile = new FileInputStream(file)

                    mFTP.rest(file.getName());  // ftp에 해당 파일이있다면 이어쓰기

                    mFTP.appendFile(file.getName(), ifile); // ftp 해당 파일이 없다면 새로쓰기
               }
          }
     }

     mFTP.disconnect(); // ftp disconnect 

     } catch (SocketException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
     } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
     }
}


posted by 젊은쎄오
:
Android/Android TIP 2014. 2. 9. 23:33
* data/ 경로로 들어가려면 폰이 루팅이 되어있어야 합니다.


1.터미널창에 adb shell 

2. 내가 디버깅할 프로젝트 패키지명이 com.example.test 라면 
run-as com.example.test
(package명 has currupt inst.... 이런게 뜬다면 폰 리붓 후 재시도)

3. ls 명령어도 되고 cat명령어로 preference 파일은 열기도 가능하다.

4. su (루트권한얻기)

5. db파일을 sd카드로 복사 한다.
cp /data/data/패키지명/databases/디비명.db /sd카드경로

6. exit (root > adb)

7. exit (adb > C:)

8. sd카드 db파일 D드라이브로 가져오기
adb pull /sd카드경로/디비명.db d:\

9. SQLite Database Browser 로 열기 


posted by 젊은쎄오
:
JAVA 2014. 2. 9. 23:31

* 상속 

class Color{

     protected abstract void setAlpha();

     public void setColor(){
          setAlpha();
          setDrawColor();
     }

    private void setDrawColor(){
         // something
    }
}

라는 클래스가 있다. 이 Color 클래스를 상속받는다면 

추상매소드 setAlpha()를 반드시 override 해야 하고 부모(Color)에있는 

변수를사용할 수 있고  setDrawColor()를 오버라이드 받아 

수정하여 쓸 수 있다. 그럼 자식 setDrawColor()만 수행하고 부모껀 무시한다.

이 Color 클래스를 상속받는 Red 클래스가 있다.

Class Red extends Color{
     @override
     private void setAlpha(){
          // alpha = 70%; 
     }
}


이걸 사용 하는 방법은 사용할 class에서 

Color redColor = new Red();
redColor.setColor();

이렇게 사용한다.

실행 순서는 Color setColor()를 들어가 Red의 setAlpha() 매소드를 수행하고 부모(Color)클래스의
setDrawColor();를 수행한다. 

이런식으로 공통으로 사용하는 매소드가 필요할 때 그 매소드만 따로모아
클래스를 만들어놓고 상속받아 쓰면 효율적이다.


'JAVA' 카테고리의 다른 글

JAVA] Singleton 패턴  (0) 2013.02.07
JAVA] 현재 날짜, 시간 구하기  (1) 2011.11.30
JAVA] split으로 문자열 나누기  (0) 2011.10.17
JAVA] 22. 인터페이스 - 1  (0) 2011.08.19
JAVA] drawRect 속성 알아보기  (1) 2011.08.18
posted by 젊은쎄오
: