権限の取得方法

AndroidアプリケーションがOSの機能へアクセスする場合、利用者に権限を許可してもらう必要があります。 OSの機能とは以下のようなものです。 連絡先 位置情報 カメラ etc ・・・ ここでは連絡先を利用するアプリケーションを作ると想定して、どのように実装するのかをまとめます。 AndroidManifestへ権限を追加 <uses-permission android:name="android.permission.READ_CONTACTS" /> 権限を貰うための処理 public class MainActivity extends AppCompatActivity { /** * onCreate * @param savedInstanceState */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // このアプリケーションに連絡先にアクセスする権限が許可されているかチェック if (PermissionChecker.c…

続きを読む

Acer Chrome Book を使ってみた感想

ミーティング用のノートPCが欲しいと思い Acer Chromebook C730E-N12M を購入しました。 まずはChrome Bookについて簡単に説明します。 外観 特徴 WindowsでもMacでもLinuxでもないGoogle社が開発したChrome OSを搭載 Chromeブラウザで全ての作業を行う 基本的にオンライン前提 最近はChromeブラウザ用のアプリも増えてきているので何でも出来るといっても過言ではないかもしれません。 以下に(あくまで自分が感じた)メリット/デメリットをまとめてみました。 メリット(便利だと思った点) ブラウジングが快適 三本指の左右スライドでタブ移動、二本指の上下スライドでスクロール、ネットサーフィンが捗ります。 ウイルス対策の必要が無い 必要がないと言うと語弊かもしれませんが、Chromeブラウザにあらかじめ組み込まれているセキュリティ対策機能が常に最新にアップデートされます。 ただしChromeウェブストアには入力情報や閲覧履歴を収集するようなスパイウェアと呼ばれるアプリが少なからず存在するようです。 WebストアからGoogle社製以外のアプリをインストールする際は注意しましょう。 起動の早さ、バッテリ駆動時間、堅牢性 これはChrome Bookの特徴であり、多くの方が書かれています。 起動というか落とす必要がないので基本的に開ければすぐに…

続きを読む

AndroidのリリースビルドでTry supplying a main-dex list.

新規作成したプロジェクトでいざ本番ビルドしたところ以下エラーが発生 Compilation failed to complete Cannot fit requested classes in a single dex file. Try supplying a main-dex list. # methods: 66945 > 65536 Message{kind=ERROR, text=Cannot fit requested classes in a single dex file. Try supplying a main-dex list. # methods: 66945 > 65536, sources=[Unknown source file], tool name=Optional.of(D8)} 64K以上のメソッドがある場合、multiDexEnabledの設定を有効にする必要がある。 (プロジェクトを新規作成したばかりの初期状態でこの条件を満たしているが…) app/build.gradle android { compileSdkVersion 28 defaultConfig { applicationId "example.com.buildtest" minSdkVersion 15 targetSdkVers…

続きを読む

Go言語についてのメモ②(並列処理)

Go言語のに並列処理のサンプルです。 関数で定義した処理を必要なプロセス分呼び出すだけです。 test.go package main import ( "fmt" "time" "math/rand" ) func main(){ fmt.Printf("start.\n") go hello("go1") go hello("go2") time.Sleep(3 * time.Second) fmt.Printf("end.\n") } func hello(go_routine string){ for i := 0; i < 10; i++ { fmt.Printf("%s %d: hello, world.\n", go_routine, i) time.Sleep(time.Duration(rand.Intn(100)) * time.Millisecond) } } 実行結果 $ go run test.go start. go1 0: hello, world. go2 0: hello, world. go1 1: hello, world. go2 1: hello, world. go1 2: hello, world. go2 2: hello, world. go2 3: hello, world…

続きを読む

Go言語についてのメモ①(環境構築と動作確認)

Goは2009年にGoogleより発表されたプログラミング言語です。 シンプルな言語体系によりプログラミングが非常に容易であることが特徴です。多種多様のプログラミング言語があるなか学習コストが抑えられるというのは非常に大きいことだと思います。 また、軽量な動作で強力な処理能力を持ちます。実際に使ってみたんですが、数百のプロセスからなる並列処理を簡単に実装できました。 今回このGo言語を仕事で扱う機会がありましたので、忘れないうちにまとめておこうと思います。 環境構築 インストール先 /usr/local/go インストール手順 $ cd /usr/local $ # もちろんwgetでなくても可 $ # WARNING: certificateが出るなら --no-check-certificate $ wget https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz $ tar xvpf go1.5.1.linux-amd64.tar.gz $ rm go1.5.1.linux-amd64.tar.gz ※バージョンは適時修正 環境変数の設定 $ export GOROOT=/usr/local/go $ export GOPATH=/usr/local/go/.go $ PATH=$PATH:$HOME/…

続きを読む

スポンサーリンク