最近の favicon 事情


favicon(ファビコン)は、ウェブサイトのシンボルマーク・イメージとして、ウェブサイト運営者がウェブサイトやウェブページに配置するアイコンです。

以前は、favicon.ico.ico というような名前の小さな画像ファイルを1つ用意すれば、よかった。

最近は、大小40種ほどの画像ファイルを用意する必要があります。
それらを一括生成するツールやサイトがあります。

ファビコンを指定する方法は、
htmlファイルに link タグで記述します。

<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/favicon.ico">

その他に、
Windows8 用のbrowserconfig.xml や Google chrome 用のmanifest.json という設定ファイルを用意する漬葉があ李ます。

参考
wikipedia- Favicon

様々なファビコンを一括生成。favicon generator

browserconfig.xmlとはなんだ問題

Chrome 拡張機能のマニフェストファイルの書き方


Android 7.0 ファイル共有


Android 7.0 から アプリ間のファイル共有が制限されました。

プライリベート領域のファイルは、パーミッションが  700  になり、自分以外ののアプリからアクセス出来ません。

File Provider が新設され、 これを介してファイル共有を行います。

参考
Android 7.0 の動作の変更点

パーミッションの変更

アプリ間のファイルの共有

File Provider

Android 7.0 (API 24) への対応 (外部)ストレージ内ファイルの共有


Android 6.0 の日本語フォント


Android 6.0 から日本語フォントが
モトヤフォント から Noto Sans CJK に変更されました。

Android 6.0実機に内臓されているシステムフォントの一覧
Arabic アラアビア語 や Armenianアルメニア語 なども入ってますね。

$ ls /system/fonts                                          
AndroidClock.ttf
AndroidClock_Highlight.ttf
AndroidClock_Solid.ttf
CarroisGothicSC-Regular.ttf
Clockopia.ttf
ComingSoon.ttf
CutiveMono.ttf
DancingScript-Bold.ttf
DancingScript-Regular.ttf
DroidSans-Bold.ttf
DroidSans.ttf
DroidSansMono.ttf
NotoColorEmoji.ttf
NotoNaskhArabic-Bold.ttf
NotoNaskhArabic-Regular.ttf
NotoNaskhArabicUI-Bold.ttf
NotoNaskhArabicUI-Regular.ttf
NotoSansArmenian-Bold.ttf
NotoSansArmenian-Regular.ttf
NotoSansBalinese-Regular.ttf
NotoSansBamum-Regular.ttf
NotoSansBatak-Regular.ttf
NotoSansBengali-Bold.ttf
NotoSansBengali-Regular.ttf
NotoSansBengaliUI-Bold.ttf
NotoSansBengaliUI-Regular.ttf
NotoSansBuginese-Regular.ttf
NotoSansBuhid-Regular.ttf
NotoSansCanadianAboriginal-Regular.ttf
NotoSansCham-Bold.ttf
NotoSansCham-Regular.ttf
NotoSansCherokee-Regular.ttf
NotoSansCoptic-Regular.ttf
NotoSansDevanagari-Bold.ttf
NotoSansDevanagari-Regular.ttf
NotoSansDevanagariUI-Bold.ttf
NotoSansDevanagariUI-Regular.ttf
NotoSansEthiopic-Bold.ttf
NotoSansEthiopic-Regular.ttf
NotoSansGeorgian-Bold.ttf
NotoSansGeorgian-Regular.ttf
NotoSansGlagolitic-Regular.ttf
NotoSansGujarati-Bold.ttf
NotoSansGujarati-Regular.ttf
NotoSansGujaratiUI-Bold.ttf
NotoSansGujaratiUI-Regular.ttf
NotoSansGurmukhi-Bold.ttf
NotoSansGurmukhi-Regular.ttf
NotoSansGurmukhiUI-Bold.ttf
NotoSansGurmukhiUI-Regular.ttf
NotoSansHanunoo-Regular.ttf
NotoSansHebrew-Bold.ttf
NotoSansHebrew-Regular.ttf
NotoSansJP-Regular.otf
NotoSansJavanese-Regular.ttf
NotoSansKR-Regular.otf
NotoSansKannada-Bold.ttf
NotoSansKannada-Regular.ttf
NotoSansKannadaUI-Bold.ttf
NotoSansKannadaUI-Regular.ttf
NotoSansKayahLi-Regular.ttf
NotoSansKhmer-Bold.ttf
NotoSansKhmer-Regular.ttf
NotoSansKhmerUI-Bold.ttf
NotoSansKhmerUI-Regular.ttf
NotoSansLao-Bold.ttf
NotoSansLao-Regular.ttf
NotoSansLaoUI-Bold.ttf
NotoSansLaoUI-Regular.ttf
NotoSansLepcha-Regular.ttf
NotoSansLimbu-Regular.ttf
NotoSansLisu-Regular.ttf
NotoSansMalayalam-Bold.ttf
NotoSansMalayalam-Regular.ttf
NotoSansMalayalamUI-Bold.ttf
NotoSansMalayalamUI-Regular.ttf
NotoSansMandaic-Regular.ttf
NotoSansMeeteiMayek-Regular.ttf
NotoSansMongolian-Regular.ttf
NotoSansMyanmar-Bold.ttf
NotoSansMyanmar-Regular.ttf
NotoSansMyanmarUI-Bold.ttf
NotoSansMyanmarUI-Regular.ttf
NotoSansNKo-Regular.ttf
NotoSansNewTaiLue-Regular.ttf
NotoSansOlChiki-Regular.ttf
NotoSansOriya-Bold.ttf
NotoSansOriya-Regular.ttf
NotoSansOriyaUI-Bold.ttf
NotoSansOriyaUI-Regular.ttf
NotoSansRejang-Regular.ttf
NotoSansSC-Regular.otf
NotoSansSaurashtra-Regular.ttf
NotoSansSinhala-Bold.ttf
NotoSansSinhala-Regular.ttf
NotoSansSundanese-Regular.ttf
NotoSansSylotiNagri-Regular.ttf
NotoSansSymbols-Regular-Subsetted.ttf
NotoSansSyriacEstrangela-Regular.ttf
NotoSansTC-Regular.otf
NotoSansTagbanwa-Regular.ttf
NotoSansTaiLe-Regular.ttf
NotoSansTaiTham-Regular.ttf
NotoSansTaiViet-Regular.ttf
NotoSansTamil-Bold.ttf
NotoSansTamil-Regular.ttf
NotoSansTamilUI-Bold.ttf
NotoSansTamilUI-Regular.ttf
NotoSansTelugu-Bold.ttf
NotoSansTelugu-Regular.ttf
NotoSansTeluguUI-Bold.ttf
NotoSansTeluguUI-Regular.ttf
NotoSansThaana-Bold.ttf
NotoSansThaana-Regular.ttf
NotoSansThai-Bold.ttf
NotoSansThai-Regular.ttf
NotoSansThaiUI-Bold.ttf
NotoSansThaiUI-Regular.ttf
NotoSansTibetan-Regular.ttf
NotoSansTifinagh-Regular.ttf
NotoSansVai-Regular.ttf
NotoSansYi-Regular.ttf
NotoSerif-Bold.ttf
NotoSerif-BoldItalic.ttf
NotoSerif-Italic.ttf
NotoSerif-Regular.ttf
Roboto-Black.ttf
Roboto-BlackItalic.ttf
Roboto-Bold.ttf
Roboto-BoldItalic.ttf
Roboto-Italic.ttf
Roboto-Light.ttf
Roboto-LightItalic.ttf
Roboto-Medium.ttf
Roboto-MediumItalic.ttf
Roboto-Regular.ttf
Roboto-Thin.ttf
Roboto-ThinItalic.ttf
RobotoCondensed-Bold.ttf
RobotoCondensed-BoldItalic.ttf
RobotoCondensed-Italic.ttf
RobotoCondensed-Light.ttf
RobotoCondensed-LightItalic.ttf
RobotoCondensed-Regular.ttf

参考

Android 6.0 Marshmallowでは日本語フォントがモトヤフォントからNoto Sans CJKに変更される。

Android 4.0で採用された「モトヤフォント」とは?


Android 6.0 権限管理


Android 6.0 から権限管理が強化されました。

従来は、アプリをインストールしたときに、アプリの要求するすべての権限が許可されていました。

Android 6.0 からは、アプリをインストールしたときは、アプリの要求するすべての権限が不許可になります。
インストールしたあとで、アプリごとに権限を許可/不許可することができます。
端末のAPIバージョンと、アプリをビルドしたときのAPIバージョンの組み合わせにより、挙動が異なるので、まごつくことがあります。

上記に加えて、アプリが必要になったときに権限を要求する Runtime Permission という手順が推奨されます。

簡単なサンプルコードを作成して、Github で公開しました。

SDカードへの書き込み権限( WRITE_EXTERNAL_STORAGE )を要求する。

20170603_screenshot_permission_dialog

参考

実行時のパーミッション リクエスト

Android 6.0 の Runtime Permission に対応する


Android 5.0 SDカードのアクセス管理


Android 5.0 にて、
Storage Access Framework というSDカードのアクセス管理の仕組みが導入されました。

Content Provider を機能拡張した感じです。

いろいろと機能が豊富で、説明を読んでもよく理解できない。

簡単なサンプルコードを作成して、Github で公開しました。

画像ファイルを指定して、Picker を呼び出す。

20170602_strage_access_picker

参考
ストレージ アクセス フレームワーク

Android5.0で可能になったSDカードへの書き込みを試す

Android 5.0以降のSDカード書き込み制限について今更ながら知ったこと


Android 4,4 SD カードの書き込み制限


Android 4,4 からSD カードの書き込み制限が強化されました。
以前は、SD カードの全領域に対し、書き込み可能でしたが。
4.4 からは、アプリの固有領域とアプリ間の共通領域のみになりました。

アプリの固有領域は、
content#getExternalFilesDirs() で取得できます。
WRITE_EXTERNAL_STORAGE権限は不要です。

アプリ間の共通領域は、
Environment#getExternalStoragePublicDirectory() で取得できます
WRITE_EXTERNAL_STORAGE 権限と READ_EXTERNAL_STORAGE 権限が必要です。

サンプルコード
2種類のサンプルコードを作成して、 github で公開しました。
(1)アプリ固有領域への書き込み
(1)異なるアプリからアプリ共有領域への書き込み

参考
Android 4.4 APIs

Android 4.4におけるSDカード書き込みを試してみる – m-kawato’s diary