Translate

2014년 1월 27일 월요일

[Android] LG G2 Util Apps (TaskManager, FileManager, KeyBoard.. etc)




백그라운드로 동작하는 프로세스를 종료하는 방법을 찾다가 알게된
내가 사용하는 LG G2 의 TaskManager 앱의 소스를 찾을 수 있었다.


다음과 같은 어플 소스가 있다.

  • LGEIME.zip
  • LGFileManager.apk
  • LGGallery.zip
  • LGLifeStream.apk
  • LGLifeStreamLogManager.apk
  • LGTaskManager.apk

Download Link



원문링크: http://forum.xda-developers.com/showthread.php?t=2409054


2014년 1월 17일 금요일

[OSX] 맥(mac)에서 신도리코 프린터 흑백(Ricoh Aficio MP C3000)으로 설정하기





최근 회사의 프린터가 교체(Ricoh Aficio 2002 -> Ricoh Aficio MP C3000) 되면서
이번에는 무조건 흑백을 설정해 줘야만 프린트가 출력이 되어서
많은 (윈도우)사용자가 고생을 했다.


나도 OSX 에서 4번째 설정만에 겨우 프린트를 출력할 수 있게 되었다.




환경: OSX Mevericks (10.9.1)



방법:

1. [필수] Linux Foundation 드라이버 설치 -> 링크

2. 신도리코 사이트에서 해당 프린터 드라이버도 설치를 했었다. 링크






다음과 같이 꼭 프린트 이름 뒤에 'PXL' 글자가 있는 드라이버를 선택한다.









다음과 같이 옵션을 선택한다.







PS.
해당 드라이버에서는 흑백(grayscale) 설정이 없다.
편집기 아무거나 열고서 프린트를 선택해서 조정한다.








항목중에 '색상 일치'를 선택










'기타 프로파일' 선택










'일반 Gray 프로파일' 선택










항목의 '프린터 기능' 으로 설정











Color Mode 에서 'Grayscale' 선택









이제는 해당 설정을 저장하기 위해
'현재 설정을 미리 설정으로 저장...' 선택












원하는 이름을 입력 후 승인 선택






참조:
http://users.wfu.edu/yipcw/ricoh/aficiompc3000/





2014년 1월 13일 월요일

[Android] Memory 사용량 측정하기





    public MemResource getResource(Context context) {

        ActivityManager activityManager = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
        ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
        activityManager.getMemoryInfo(memoryInfo);

        MemResource meminfo = new MemResource();
        meminfo.setTotal(memoryInfo.totalMem);
        meminfo.setAvail(memoryInfo.availMem);

        return meminfo;
    }

    public class MemResource {
        private long avail;
        private long total;

        public String getAvail() {
            return changeHumanValue(avail);
        }

        public void setAvail(long avail) {
            this.avail = avail;
        }

        public String getTotal() {
            return changeHumanValue(total);
        }

        public void setTotal(long total) {
            this.total = total;
        }

        private String changeHumanValue(long value) {
            String humanValue;
            value = (int)(value / (1000 * 1000));
            if (value > 1024) {
                humanValue = (int)(value / 1024) + "";
                humanValue += "." + value % 1024 + "G";
            } else {
                humanValue = value + "M";
            }
            return humanValue;
        }
    }





CPU 사용량 구하는 방법과 같이 Linux 의 기본 기능을 가져와서 파싱하려 했는데
실제 핸드폰의 관리프로그램에서 보이는 용량과 System 에서 보여지는 용량과 큰 차이가 있다.
안드로이드는 시스템의 메모리를 최대한 확보를 한다나 모라나..





참조 사이트
http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110092658919&parentCategoryNo=18&viewDate=&currentPage=1&listtype=0
http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android/2299813#2299813




[Android] CPU 사용량 측정하기





    public CpuResource getResource(long updatePeriod) {

        try {
            RandomAccessFile reader = new RandomAccessFile("/proc/stat", "r");
            String load = reader.readLine();

            String[] toks = load.split("[ ]+");

            float userMode1 = Float.parseFloat(toks[1]);
            float niceMode1 = Float.parseFloat(toks[2]);
            float systemMode1 = Float.parseFloat(toks[3]);
            float idleMode1 = Float.parseFloat(toks[4]);

            try {
                Thread.sleep(updatePeriod);
            } catch (Exception e) {}

            reader.seek(0);
            load = reader.readLine();
            reader.close();

            toks = load.split("[ ]+");

            float userMode2 = Float.parseFloat(toks[1]);
            float niceMode2 = Float.parseFloat(toks[2]);
            float systemMode2 = Float.parseFloat(toks[3]);
            float idleMode2 = Float.parseFloat(toks[4]);

            float userMode = userMode2 - userMode1;
            float niceMode = niceMode2 - niceMode1;
            float systemMode = systemMode2 - systemMode1;
            float idleMode = idleMode2 - idleMode1;

            float total = userMode + niceMode + systemMode + idleMode;

            float user = (userMode / total) * 100;
            float system = (systemMode / total) * 100;

        } catch (IOException e) {
            Log.e(LOG_NAME, e.getMessage());
        } catch (Exception e) {
            Log.e(LOG_NAME, e.getMessage());
        }

        return user+system;
    }



/proc/stat 파일을 읽어서 첫줄을 파싱처리를 해서 보여준다.

user사용량 = (user / total) * 100
system사용량 = (system / total) * 100


단 해당 수치는 시스템 부팅 후 누적 값 이므로 순간 사용량을 구하기 위해서는 두번 값을 읽어와서 늘어난 만큼의 수치값으로 계산을 해야 한다.






참조 사이트:
http://stackoverflow.com/questions/9756353/how-to-get-memory-usage-and-cpu-usage-by-application
http://www.dreamy.pe.kr/zbxe/CodeClip/163339
http://forum.falinux.com/zbxe/?document_srl=554222&mid=lecture_tip&page=7
https://kldp.org/node/129143



2014년 1월 8일 수요일

[Android] Android 2.x, Android 3.x 의 Default Browser 에서 디버깅모드 사용하기




Honeycomb 의 OEM(Default) Browser 에서 화면이 정상적으로 나오지 않는경우..
디버깅 하기가 참으로 난감하다..

개발자도구를 지원하지 않는 IE6 같은 느낌이랄까..;;





디버깅 하다가 답이 없다는 생각에 혹시나 하는 마음에 찾아봤더니 툴이 있었다.

weinre(링크)

라는 프로그램인데 node.js 로 구성되어 있기 때문에 npm을 설치해야 한다.






이제부터는 설치 및 사용기!! (OSX 기준)


우선 npm이 설치되어있는지 확인!!
다음과 같이 되어있다면 아직 설치되지 않은 상황..






http://nodejs.org/download/ 사이트에서 운영체제에 맞는 프로그램을 받아서 설치!!






다음과 같이 나온다면 정상적으로 설치가 되었다.





이제 weinre 를 설치하자.







이제 서버(node)를 실행시켜 보자.
(boundHost 는 127.0.0.1이 아니라 외부에서 접속 가능한 아이피로 해야 한다.)








그리고 디버깅 할 소스에 요로코롬 스크립트를 추가한다.
PS.
- body를 닫기전에 추가
- 장비나 에뮬레이터에서 테스트를 한다면 127.0.0.1 이 아니라 외부에서 접속 가능한 ip를 넣어 주어야 한다.








브라우저에서 다음과 같이 서버에 접속한다.
(debug client user interface 를 클릭)








처음에는 다음과 같이 나오는데 다른 브라우저에서 해당 페이지를 띄우지 않은 상태이다.







다음과 같이 디바이스나 에뮬레이터에서 해당 페이지를 접속하면











아까의 페이지가 다음과 같이 변한다.
(Targets 의 링크를 클릭 후 Elements를 확인해보자)






웹 페이지 자체가 크롬개발자도구로 변한다.









위와같이 선택하면 해당 페이지에서 선택된 Element 가 표시되는 것을 볼 수 있다.
(사용 방법 및 단축키는 기존의 크롬개발자도구와 동일)





Weinre 한글문서:
http://hacks.mozilla.or.kr/2013/03/remote-debugging-firefox-os-with-weinre/


Android Default Browser 에서 Console Log 사용하기:
http://developer.android.com/guide/webapps/debugging.html





웹서버가 다른곳에 있어도 상관 업지만 자신의 개발 PC에 웹서버를 셋팅해 놓으면 개발시 테스트 시간이 단축된다는 장점이 있다.

Apache 나 Tomcat 셋팅방법은 귀찮으니.. 뿅!!