Android Studio

BackspaceCtrl+H
Complete Current StatementShift+Enter
DownCtrl+N
UpCtrl+P
Recent FilesCtrl+, R
Navigate FileCtrl+, F
File StructureCtrl+, O
Code Completion BasicCtrl+Shift+Space
Code Completion SmartTypeCtrl+Space
Reformat CodeCtrl+Shift+L
Find ActionCtrl+,E
Show Intention ActionCtrl+Enter



Android Studio 向け .gitignore

.gitignore
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures

*.iml
.idea/.gitignore
*.xml

!/codeStyleSettings.xml
!/copyright/*.xml
!/fileColors.xml
!/fileTemplates/
!/encodings.xml
!/findbugs-idea.xml
!/gradle.xml
!/runConfigurations.xml
!/inspectionProfiles/*.xml
!/scopes/*.xml
!/templateLanguages.xml
!/vcs.xml

eclipse + Robolectric

  • Roboletricのプロジェクト(Java Project)を作る.テスト対象プロジェクトと同じ階層に作る.
  • Project参照でテスト対象プロジェクトを選択
  • Maven Centralからroboletricを持ってくる. libsフォルダを作って格納する
robolectric-2.4-jar-with-dependencies.jar
fest-android-1.0.8.jar
fest-assert-core-2.0M10.jar
fest-util-1.2.5.jar
  • BuildPathにダウンロードしてきたjarを追加する
AddJars
  • AndroidSDKの android.jar を BuildPathに追加
Add External Jars
  • JUnitを追加
AddLibrary
  • テスト対象プロジェクトのAndroidManifestを参照できるようにする
src/org.robolectric.Config.properties
manifest=../TargetPreject/AndroidManifest.xml
  • テストクラスの追加
import static org.fest.assertions.api.ANDROID.assertThat;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;

import android.widget.Button;
import android.widget.EditText;

@RunWith(RobolectricTestRunner.class)
public class LoginActivityTest {

    private LoginActivity activity;

    @Before
    public void setup() {
        activity = Robolectric. setupActivity(LoginActivity.class);
    }

    @Test
    public void shouldNotBeNull() throws Exception {
        assertThat(activity ).isNotNull();

        EditText textView = (EditText) activity.findViewById(R.id. edit_login);
        assertThat(textView ).isNotNull();

        Button button = (Button) activity.findViewById(R.id. button_login);
        assertThat(button ).isNotNull();
        button.performClick();
        Thread. sleep(1000);
    }
}
  • Order and Exportの変更
src 対象プロジェクト JRE System Library JUnit4 robolectric android.jar fest...

logcat

adb logcat *:Eタグ指定なし
adb logcat dalvikvm:E *:Sタグ指定複数タグ指定の場合 ActivityManager:E,dalvikvm:I などとtag:priorityの形でカンマ連結する

リリース版からログを削除する

1)project.propertiesにて,proguardのconfigファイルにproguard-project.txtを指定
# To enable ProGuard to shrink and obfuscate your code, uncomment this
#(available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
proguard.config=proguard-project.txt
2)>proguard-project.txtにて出力を削除するレベルを記述
-assumenosideeffects class android.util.Log {
	public static *** v(...);
	public static *** w(...);
}

アプリに署名をつける

1)デバッグコードの削除
    <application android: debuggable="false">
2)リリースモードでコンパイル(この例はphonegapアプリ)
$ ./cordova/build --release
3)鍵の生成
$ keytool -genkey -v -keystore <鍵.keystore> -alias <keystorealias> -keyalg RSA -validity <有効期間>
4)署名
$ jarsigner -verbose -keystore <鍵.keystore> <unsigned apk> <keystorealias>
5)apkの最適化
$ zipalign -v 4 <signed apk> <output.apk>

CPUの情報を取る

root@android:/ # cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 996.74
Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc08
CPU revision    : 2

Hardware        : OMAP3 Beagle Board
Revision        : 0020
Serial          : 0000000000000000

リンク

便利サイト

Android Asset Studio ?

ソース検索

Linuxカーネル関連

Linuxデバイスドライバ

テキサス

Android Developpers

NDK

MTPをlinuxで使用する方法について

起動時の処理を制御するファイル

  1. /init.rc
  2. /init.device_namerc
  3. /system/etc/int.device_namesh

build

1
build/envsetup.sh lunch
or
buildspec.mk

2
AndroidProducts.mk
Single Product .mk
main.mk build/core
config.mk
definitition.mk
boardconfig.mk
makefile

Android.mk
CleanSpec.mk

beagleboard-xm rowboatのビルド

x-loader

~/rowboat-android% cd x-loader
~/rowboat-android/x-loader% make CROSS_COMPILE=arm-eabi- distclean
~/rowboat-android/x-loader% make CROSS_COMPILE=arm-eabi- omap3beagle_config
~/rowboat-android/x-loader% make CROSS_COMPILE=arm-eabi-
~/rowboat-android/x-loader% signGP ./x-load.bin
~/rowboat-android/x-loader% mv x-load.bin.ift MLO

u-boot

~/rowboat-android%cd u-boot
~/rowboat-android/u-boot%make CROSS_COMPILE=arm-eabi- distclean
~/rowboat-android/u-boot%make CROSS_COMPILE=arm-eabi- omap3_beagle_config
~/rowboat-android/u-boot%make CROSS_COMPILE=arm-eabi-

kernel (USB modem を有効にする

~/rowboat-android%cd kernel
~/rowboat-android/kernel%make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
~/rowboat-android/kernel%make ARCH=arm CROSS_COMPILE=arm-eabi- omap3_beagle_android_defconfig
~/rowboat-android/kernel%make ARCH=arm menuconfig
~/rowboat-android/kernel%make ARCH=arm CROSS_COMPILE=arm-eabi- uImage

Android

~/rowboat-android%make TAGET_PRODUCT=beagleboard OMAPES=5.x -j8

Android ユーザーランドのパッケージ

~/rowboat-android%cd out/target/product/beagleboard
~/rowboat-android/out/target/product/beagleboard%mkdir android_rootfs
~/rowboat-android/out/target/product/beagleboard%cp -r root/* android_rootfs
~/rowboat-android/out/target/product/beagleboard%cp -r system android_rootfs
~/rowboat-android/out/target/product/beagleboard%sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2

boot.scrの作成

~/Android/Devkit/Tools/mk-bootscr%cat mkbootscr
#!/bin/sh
cat <<EOF > boot.cmd
if fatload mmc 0 82000000 uImage
then
 echo ***** Kernel: /dev/mmcblk0p1/uImage *****
fi
echo ***** RootFS: /dev/mmcblk0p2 *****
setenv bootargs 'console=ttyO2,115200n8 androidboot.console=ttyO2 mem=256M root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init ip=off omap_vout.vid1_static_vrfb_alloc=y vram=8M omapfb.vram=0:8M'

































bootm 0x82000000
EOF

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Execute uImage.bin' -d boot.cmd boot.scr
~/Android/Devkit/Tools/mk-bootscr%./mkbootscr
~/Android/Devkit/Tools/mk-bootscr%ls boot.scr 
boot.scr

Media_Clipディレクトリ

~%cp -a Android/Devkit/Prebuilt_Images/beagleboard-xm/Media_Clips rowboat-android

SDカードの作成

~%cd rowboat-android
~/rowboat-android%mkdir image_folder
~/rowboat-android%cp kernel/arch/arm/boot/uImage image_folder
~/rowboat-android%cp u-boot/u-boot.bin image_folder
~/rowboat-android%cp x-loader/MLO image_folder
~/rowboat-android%cp ~/Android/Devkit/Tools/mk-bootscr/boot.scr image_folder
~/rowboat-android%cp out/target/product/beagleboard/rootfs.tar.bz2 image_folder
~/rowboat-android%cp -a Media_Clips image_folder
~/rowboat-android%cd image_folder
~/rowboat-android/image_folder%LANG=C sudo ./mkmmc-android.sh /dev/sdb MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips

BeagleBoard-xMをUSBデバイスとして認識させる

ubuntu12.04版
%sudo vi /etc/udev/rules.d/51-android.rules
%cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
%sudo /etc/init.d/udev restart

シリアルポートに接続する

%screen /dev/ttyUSB0 115200
ubuntu12.04から読み書き権限がなくなった模様.
dialoutグループに追加
%sudo vigr

BeagleBoard-xMをインターネットにつなぐ

# netcfg usb0 up
# netcfg usb0 dhcp
# setprop net.dns1 192.168.1.1

ライセンスについて詳細に知る

build/tools/print_module_licence.hs

補助コマンド

~/rowboat-android%source build/envsetup.sh 
including device/ti/am45xevm/vendorsetup.sh
mコマンドトップディレクトリからビルドを開始する
mmコマンドカレントディレクトリのモジュールをビルドする
mmmコマンド指定したディレクトリのモジュールをビルドする
crootコマンドトップディレクトリに移動する
cgrepコマンドC言語のソースコードをgrepする
jgrepコマンドJavaのソースコードをgrepする
resgrepコマンドxmlファイルをgrepする
lunchコマンドビルドターゲットを指定する

repo

最新環境をチェック
https://code.google.com/p/git-repo/
$ curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo

Androidソースの取得

このページへのコメント

F8JVTh Thanks again for the post.Thanks Again. Great.

0
Posted by awesome things! 2014年01月22日(水) 18:39:07 返信

125698
http://www.konosuke-matusita.com/
http://www.mbldaypassdeals.com/
http://www.erven-voor-ontwikkeling.com/
http://www.bossen-van-bezinning.com/
http://www.rustandbonescreenplay.com/
http://www.vivesolutionsinc.com/
http://www.darinkamontano.com/
http://www.awfmmellowtouch.net/
Cheap Canada Goose Jackets clearance sale &amp; Winter Parka outlet shop http://www.darinkamontano.com/

0
Posted by Cheap Canada Goose Jackets clearance sale &amp; Winter Parka outlet shop 2013年12月24日(火) 08:18:03 返信

canada goose
http://www.darinkamontano.com/
http://www.awfmmellowtouch.net/
http://www.rajasthantour-travels.com/
canada goose montebello parka http://www.rajasthantour-travels.com/

0
Posted by canada goose montebello parka 2013年12月20日(金) 05:44:00 返信

Sc5a1b Major thanks for the blog article.Really looking forward to read more. Awesome.

0
Posted by watch for this 2013年12月19日(木) 23:35:48 返信

ruqLPy <a href="http://dqwhoowmvpgf.com/">dqwhoowmvpgf</a>, [url=http://bjzzoeawwscy.com/]bjzzoeawwscy[/url], [link=http://mqhfwuvptkck.com/]mqhfwuvptkck[/link], http://vhpktxqrkkal.com/

0
Posted by slnvfxc 2013年11月19日(火) 02:29:47 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます