Android Studio Electric Eel 버전 

 

1. Android Studio > setting > Experimetal  > Gradle : Only include test tasks in the Gradle task list generated during Gradle Sync uncheck

 

 

2.  File > Sync Project with Gradle Files > 클릭 

 

 

3. 오른쪽 Gradle 에서 아래그림처럼 build script 를 찾을 수 있다. 

 

 

 

4. app > Tasks > build > assemble 를 더블클릭하면 

 

/안드로드이드 프로젝트/app/build/outputs/apk 폴더에 debug , release 폴더에 APK 파일이 각각 생성되어 있다. 

 

4. app > Tasks > build > bundle 를 더블클릭하면 

/안드로드이드 프로젝트/app/build/outputs/bundle  폴더에 debug , release 폴더에 aab 파일이 각각 생성되어 있다. 

AND

defaultConfig {
     

        //apk  버전명_버전코트_빌드날짜로 생성 bundle 
        def date = new Date()
        def formattedDate = date.format('yyMMdd_HHmm')
        setProperty("archivesBaseName", "앱이름" + versionName+ "_" + versionCode + "_" + formattedDate)

       
    }

 

 

//키스토어 설정 

 signingConfigs {

        release {
            storeFile file('./../키스토어.keystore')
            storePassword '패스워드'
            keyAlias 'alias'
            keyPassword '패스워드'
        }
    }


     debug {
            def date = new Date()
            def formattedDate = date.format('MMdd_HHmm')
            manifestPlaceholders = [appName: "앱이름"+formattedDate]   
            minifyEnabled false
            debuggable true
            signingConfig signingConfigs.release
        }

 

 release {
            manifestPlaceholders = [appName: "운영앱이름"]
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }

 

AND

Android 폰에서 하드웨어 최근앱 (메뉴??) 키를 누른경우 프로세스에 있는 앱들이 보여진다.

이때 아래 그림처럼 화면을 백지처럼 만들고 싶을때 Activity Create 함수에 넣어준다.

화면 캡쳐 방지 코드이기도 하다.

 

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)

 

 

AND

개발을 하는데 Signing 때문에 불편한 적이 있어서 찾아봤더니

release.keystore 를 bebug로 바꾸어서 사용 할 수있다.

 

keytool -importkeystore -v -srckeystore 릴리즈.keystore  -destkeystore 생성될keystore파일명 -srcstorepass 릴리즈.keystore패스워드 -deststorepass android -srcalias 릴리즈alias -destalias androiddebugkey -srckeypass 릴리즈alias패스워드 -destkeypass android

 

 

 

 

 

[참고] http://blogprogramistyandroid.blogspot.kr/2011/04/converting-release-keys-to-debug.html

AND

meta-data 쓰기

Program/Android 2013. 8. 1. 11:04

manifest 에 


1. <meta-data android:name="com.example.test.metatest"

android:value="@string/metatest" /> 선언


2. <string name="metatest">테스트</string>



3. try {
            ApplicationInfo ai = context.getPackageManager().getApplicationInfo(
                    context.getPackageName(), PackageManager.GET_META_DATA);
            if (ai.metaData != null) {
             String metaData = ai.metaData.getString("com.example.test.metatest");
            }
        } catch (PackageManager.NameNotFoundException e) {
            // if we can't find it in the manifest, just return null
        }

AND

* drawable-ldpi (120 dpi, Low density screen) - 36px x 36px
* drawable-mdpi (160 dpi, Medium density screen) - 48px x 48px
* drawable-hdpi (240 dpi, High density screen) - 72px x 72px
* drawable-xhdpi (320 dpi, Extra-high density screen) - 96px x 96px
* drawable-xxhdpi (480 dpi, Extra-high density screen) - 144px x 144px
AND

 

 


이클립스에서
Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced 로 이동
하단 창에 보이는 Java Proposal를 체크하고 UP 버튼을 클릭해서 상단으로 이동..
AND

* TitleBar 없애기

1) AndroidManifest.xml 에서 TitleBar 없애기
activity태그에 android:theme="@android:style/Theme.NoTitleBar" 를 추가한다.
그리고 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 을 주게 되면 상단의 시계와 배터리 보이는 부분까지 없어짐으로 화면전체를 FullScreen으로 사용할 수 있다.


2) Activity 소스상에서 TitleBar 없애기
requestWindowFeature(Window.FEATURE_NO_TITLE);
단, onCreate의 super.onCreate(...); 다음에 넣어야 함.

* Title Text 수정하기 (Activity에서 실행되어야 함)
setTitle((CharSequence)title);

 

 

AND

1. cmd /u
2. chcp 65001
3. 속성>글꼴> Lucida Console 설정
4. adb logcat

 

AND

안드로이드에는 Sensor 종류

int TYPE_ACCELEROMETER A constant describing an accelerometer sensor type. -> 가속도계 센서 타입

int TYPE_ALL
A constant describing all sensor types.

int TYPE_AMBIENT_TEMPERATURE
A constant describing an ambient temperature sensor type -> 주위 온도 센서 타입 (쓰이는지는 잘모르겠다)

int TYPE_GRAVITY
A constant describing a gravity sensor type. -> 중력 센서

int TYPE_GYROSCOPE
A constant describing a gyroscope sensor type ->자이로스코프 센서(회전운동,  센서?)

int TYPE_LIGHT
A constant describing an light sensor type. -> 광센서

int TYPE_LINEAR_ACCELERATION
A constant describing a linear acceleration sensor type. ->선가속도센서

int TYPE_MAGNETIC_FIELD
A constant describing a magnetic field sensor type. -> 자기장 센서

int TYPE_ORIENTATION
This constant is deprecated. use SensorManager.getOrientation() instead. -> 방향 센서

int TYPE_PRESSURE
A constant describing a pressure sensor type -> 압력 센서

int TYPE_PROXIMITY
A constant describing an proximity sensor type. -> 근접센서

int TYPE_RELATIVE_HUMIDITY
A constant describing a relative humidity sensor type. -> 상대습도 센서

int TYPE_ROTATION_VECTOR
A constant describing a rotation vector sensor type. -> 회전센서

int TYPE_TEMPERATURE
This constant is deprecated. use Sensor.TYPE_AMBIENT_TEMPERATURE instead. -> 온도 측정 센서

   List<Sensor>  m_sensorlist =  sm.getSensorList(Sensor.TYPE_ALL);
        if(!m_sensorlist.isEmpty()){
                Sensor snsr;
                for(int i=0;i<m_sensorlist.size();i++){
                        snsr=m_sensorlist.get(i);
                        String snstyp;
                        switch(snsr.getType()){
                          case Sensor.TYPE_ACCELEROMETER     : snstyp="TYPE_ACCELEROMETER";break;
                          case Sensor.TYPE_ALL               : snstyp="TYPE_ALL";break;
                          case Sensor.TYPE_GYROSCOPE         : snstyp="TYPE_GYROSCOPE";break;
                          case Sensor.TYPE_LIGHT             : snstyp="TYPE_LIGHT";break;
                          case Sensor.TYPE_MAGNETIC_FIELD    : snstyp="TYPE_MAGNETIC_FIELD";break;
                          case Sensor.TYPE_ORIENTATION       : snstyp="TYPE_ORIENTATION";break;
                          case Sensor.TYPE_PRESSURE          : snstyp="TYPE_PRESSURE";break;
                          case Sensor.TYPE_PROXIMITY         : snstyp="TYPE_PROXIMITY";break;
                          case Sensor.TYPE_TEMPERATURE       : snstyp="TYPE_TEMPERATURE";break;
                         default: snstyp="UNKNOWN_TYPE "+snsr.getType();break;
                        }  
                        Log.d(TAG, "Sensor."+snstyp);
                       
                }
        }
 로 조회 결과
가지고 있는 테스트 폰의 갤럭시 S는 아래처럼 나온다.  TYPE_GYROSCOPE는 지원을 안해서 값을 알수가 없다.
Sensor.TYPE_ACCELEROMETER
Sensor.TYPE_MAGNETIC_FIELD
Sensor.TYPE_ORIENTATION
Sensor.TYPE_LIGHT
Sensor.TYPE_PROXIMITY
Sensor.UNKNOWN_TYPE 9
Sensor.UNKNOWN_TYPE 10
Sensor.UNKNOWN_TYPE 11


참고 : http://arsviator.blogspot.com/2010/08/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%84%BC%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0using-sensors-in-android.html

AND