일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- QT
- 알람프로그램
- 이륜차
- 스타2
- 오토바이
- 엑티브엑스
- HTML
- Qt4
- Qt OpenGL
- Qt 소켓프로그래밍
- 양평역
- 디자이어HD
- 재귀함수
- android SAF
- 윈도우7
- 안드로이드
- Java
- QTcpServer
- c언어
- 잡담
- qt 설치
- 마영전
- 바이크
- 자료구조
- 자바
- 스타크래프트2
- vuejs
- FFI
- 정성하
- 고속도로
- Today
- Total
목록프로그래밍/안드로이드 (53)
프로그래밍과 잡담
썅노무 구글이 정책을 바꾸는 바람에 서드파티 앱들은 sdcard에 쓰기 접근이 불가능하게 되었다.읽기는 가능하다. 그래서 파일을 지우거나 쓰는 행위를 할 수 없게 만들어버렸다. 아주 쌍놈들이지. 지울려면 별 이상한 지랄을 떨어서 해야하는데 그 방법을 xda에 있는 능력자께서 제공해 주셨다. 아래의 사이트로 들어가서 보면 된다. 아 망할 구글 새끼들. http://forum.xda-developers.com/showthread.php?t=2634840
앱이 크래시 오류가 나서 앱이 강제로 종료된 경우에 로그를 저장하고 싶은 경우가 있을 것이다. 그럴 때 사용하는 라이브러리가 바로 ACRA (Application Crash Reports for Android ) 라는 라이브러리이다. 다운로드 : https://github.com/ACRA/acra 위에 있는 곳에서 라이브러리를 다운 로드를 받는다. 1. 자신이 작업하는 앱의 lib 폴더에 넣는다.2. 프로젝트 속성에 들어가서 라이브러리를 등록한다. 3. 먼저, 메니페스트 파일을 열어서 퍼미션을 추가한다. 4. 그리고 클래스 파일을 하나 만든다. 4.1 Application을 상속하는 클래스를 생성한다. 나머지는 예제를 보고 참조 @ReportsCrashes(formKey = "", //저장할 때 쓰는 것..
안전모드 윈도우에도 있고 리눅스에도 있다. 안드로이드도 리눅스이니까 안전모드가 있더군. 일반적인 하드웨어 적으로 메뉴버튼이나 홈버튼이 있는 경우에는 아래의 링크로 들어가면 자세히 나온다. https://support.norton.com/sp/ko/kr/home/current/solutions/v59378086_EndUserProfile_ko_kr 버튼이 없는 태블릿의 경우에는 다음과 같은 방법을 이용해야한다. 일단 난 삼성 갤노트 10.1 밖에 없으니 이것만 설명한다. 근데 대부분 비슷할 거라 생각한다. 1. 일단 태블릿을 끈다. 2. 다시 전원을 킨다. 3. 삼성 로고가 뜨면 볼륨 작게 하는 버튼을 계속 누르고 있는다. 4. 태블릿이 켜질때 까지 계속 누르고 있는다. 5. 그러면 안전모드라고 구석에 뜰..
XML상에서는 그냥 위에 처럼 쓰면 된다. 하지만 동적으로 레이아웃을 만들 거나 할 때는 코드로 만들어야 한다. 그 방법은 // 아래와 같이 해줘야 기기에 맞는 DP가 나온다. DisplayMetrics dm = getResources().getDisplayMetrics(); int size = Math.round(20 * dm.density); Button btn = new Button(mContext); //패딩은 그냥 이렇게 쓰면 된다. btn.setPadding(0,size,0,0); //마진을 쓸려면 아래와 같은 방법을 쓰면 된다. LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.W..
왜 미친 컴파일러냐고? 왜냐하면 컴파일을 하면 에러메시지를 존나 간단하게 보여준다. INVALID_VALUE 라는 에러메시지만 덜렁 보내고 검은 화면만 나온다. 이 미친 또라이같은 컴파일러가 다 있나? float t = 0.0; if( t == 0) { ... } 위에 처럼 하면 오류 안날 거 같지? 근데 씨발 오류가 난다. 저 빌어먹을 INVALID_VALUE 가.. ; (세미콜론)을 빼 먹어도 GL_INVALID_VALUE 이고 뭐만 잘못하면 이것만 나온다. 완전 병신 컴파일러다. 아 그리고 난 OpenGL ES를 JNI를 이용해서 만든게 아니고 그냥 자바 상에 자바 코드로만 했다. 혹시 JNI가 아닌 순수 자바로만 GLSL을 하는 사람들이 있다면 인간 GLSL 컴파일가 되어야 할 것이다. 내가 GL..
어떻게 골 때리냐 하면은 나는 모니터는 2개 쓴다. 근데 1번은 외장 gpu로 연결했고 두 번째는 내장에 연결했다. 이유는 외장 gpu가 이상해서 그런거고. 여하튼 이게 중요한게 아니고. 안드로이드 에뮬레이터 보면 gpu 에뮬레이션이라는게 있다. gpu로 에뮬레이터 그래픽 가속을 하는거지. 이걸 1번 모니터에서 실행하면 실행이 잘 되는데 2번 모니터에서 실행을 하면 앱 크래시가 발생한다. 이해 안돼면. 모니터 1번과 2번의 그래픽카드가 달라서 발생하는 에러인가보다. 1번 모니터에 안에서 에뮬레이터를 실행하면 잘돼고 1번 모니터가 아닌 2번 모니터에서 에뮬이 실행돼면 앱이 크래시가 일어난다는거. 1모니터 --> 실행 --> 1모니터에서 실행 OK1모니터 --> 실행 --> 2모니터 실행 fail 아 씨발 ..
랜더 스크립트 사용시 오류가 발생 할 경우. 안나는 사람들도 있을 수 있다. RS 파일을 컴파일 하는거 까지는 오류가 안발생하는데 실행 시에 DX 오류가 발생하는 경우가 있다. BufferOverflowException 인가가 보일 수도 있고 여러가지가 있는데 이에 대한 해법은 포멧이 있을 수 있고 포멧이 귀찮으면 android sdk manager를 열어서 build-tool들을 다 지우고 하나 씩 깔아서 테스트하면 된다. 그래도 안돼면 그냥 포멧.. 나같은 경우는 빌드툴이 19까지 있는데 19에서도 오류가 나서 18.1로 내렸더니 잘된다. 도대체 왜 이러는건지 알 수가 없네..망할노무거.. 그냥 리눅스를 깔아서 해야하나.
안드로이드는 3.0이상부터는 엑션바라는걸 사용한다. 위에 스크린샷을 보면 알다시피 이것이 액션바이다. 그리고 오버플로우 메뉴가 뭐냐하면 저기 점 3개있는게 오버플로우 메뉴다. 오버플로우의 뜻은 '넘치다' 라는 뜻이다. 일정 수의 메뉴가 액션바에 추가되면 저기 점 3개에 나오게 된다. 자, 여기까지는 설명이고 오버플로우 메뉴의 문제점을 설명하겠다. 이 오버플로우 메뉴의 단점은 아이콘이 있을 시에 아래처럼 아이콘이 안 나온다는 단점이 있다. 이것을 코드로 해결 할 수 있는 방법은 실질적으로 없다. 그렇기 때문에 오버플로우 메뉴처럼 비슷하게 보이는 방법을 써야한다. 그것은 바로!! 서브메뉴!! 를 이용하는 것이다. 서브메뉴는 메뉴 아래 나오는 메뉴를 말한다. 추가로 서브 메뉴를 만드는 방법 사용하는 방법은 굉..
지금 나한테는 디자이어HD 와 트랜스포머 프라임이 있다. 하나는 ICS(커스텀 롬 ) 이고 JB( 순정)이다. 둘의 차이는 cpu와 램에서 차이가 난다. cpu는 폰은 스냅드래곤3세대. 태블릿은 태그라3 폰은 768MB이고 태블릿은 1기가다. 둘의 최대 Heap 크기 차이가 많이 난다. 폰은 64메가 밖에 안되는 반면 태블릿은 256메가나 된다. 허 이것은 어디서 오는거지.. 최대 힙메모리 보고 싶으면 아래 처럼 쓰면 된다. android.util.Log.d("TAG","MAX MEMORY : "+ (Runtime.getRuntime().maxMemory() / (1024 )) + "KB"); 그냥 램용량에 따라서 자동으로 할당이 되는건가? 1기가 폰이 없으니 나중에 동생껄로 해봐야겠군.. 아니면 그냥 ..
알림은 위에 스크린샷 처럼 되있는걸 보고 알림이라 한다. 알림 사용법: * 전체 소스는 귀찮아서 안적음 알림 부분만 쓰겠음.. //중략 ...... //알림을 터치했을때 뜰 엑티비티 Intent in = new Intent(this, 엑티비티.class); //새로운 작업으로 실행 in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pin = PendingIntent.getActivity(this, id, in, 0); // 순서대로 아이콘 id, 제목, 표시할 시각 Notification notification = new Notification(R.drawable.icon, "제목", System.currentTimeMillis()); // 이것을 쓰..