投稿

目的別イヤホンジャックのないAndroidで音楽を聴く最新の最適解な方法

イメージ
気がつけば3.5mmイヤホンジャックがないスマホが市場のほとんどを占めていました
不便や……

イヤホンジャックないのにどうやって音楽を聴くのか
流石にご存知でしょうけど、実は結構手段はあります
今回は目的別にちょっと詳しく紹介します
(スマホはUSB Type-CのAndroidです)

変換アダプタ・プラグ・ドングル



先っぽにこれを付けることで挿せるようになります
有線接続なので遅延もありません
ただし音質は若干劣ります
これはアダプタにDACがついているためです
(イヤホンジャックがあるものはスマホにDACがついています)
DACによってデータを音に変換してくれるのですが、標準でついてくるようなものはだいたいしょぼいDACなので音質が悪いです
ただしものによってはハイレゾ対応で良いものもあります
https://www.yodobashi.com/product/100000001005059562/

ワイヤレスイヤホン
最近は使っている人がだいぶ増えました
特に完全ワイヤレスイヤホンは便利ですよね


ペアリングすることで使用可能になります


前は音質が悪かったのですが最近のものは改善しています
ただし遅延があるためリズムゲームには向きません


apt-X LLのものならば遅延はごくわずからしいのですが高価でものが少ないのが玉に瑕です
https://www.amazon.co.jp/dp/B07HRHM8F3/ref=cm_sw_r_tw_dp_U_x_ahVRDb08YY3N6

Type-C 直結イヤホン
先っぽがType-Cに直接挿せるようになっているものです


音質はイヤホンの種類に依存するものの遅延が0でリズムゲーム向きです
また、電源不要でノイズキャンセル機能を搭載したものもあり割といいとこ取りな方法です
ただし選択肢は豊富ではありません
今後増えていくと良いですね

https://www.tjc-jp.com/xiaomi/typecearphone/index.html

Oppo Reno Aが話題になっている理由と注意点

イメージ
Oppo Reno Aがハイコスパということで話題になっています
https://www.oppo.com/jp/smartphone-reno-a/

Oppo Reno AはSIMフリースマートフォンです
楽天や量販店で購入することが可能
Oppoは中国の会社で既にいくつかSIMフリースマートフォンを販売しています

なぜReno Aが話題になっているのかを解説していきます

・ハイコスパ 当たり前ですが安くて性能が良ければ話題になり売れます
近年ミドルレンジ(中間スペック)スマホの性能が向上し注目を集めています
しかし意外と高かったり性能が低かったり……

しかしReno Aはかなりハイコスパです
Snapdragon710と7xx番台で強力
Snapdragon835に近い性能を持っています
メモリも十分なLPDDR4Xの6GB
処理的には問題なさそうです
ゲームも2Dのものなら余裕、3Dのものでもこだわらなければいけそうです
Wifiは802.11ac対応
ディスプレイは6.4インチOLEDで解像度はFHD+
Bluetoothも5.0
USBはType-C
カメラもデュアル
画面内指紋認証、 防水、おサイフケータイなど完備していて隙がないですね

ミドルレンジはUSBがmicroだったり防水がなかったりしますがこれはほぼハイエンドの構成です
それでいて39,380円とはびっくり
最近ですと10万円を超えるスマホも少なくないですから消費者としてはありがたいです

国産のスマホ(特にXperia)は性能の割に高価ですからね
Xperia8はグローバル展開しているXperia10の焼き回しでSnapdragon630、液晶ディスプレイのくせに5万円もします

Pixel3aはSnapdragon670でOLEDで5万円と悪くないコスパです
でもReno Aの方が一枚上手ですね

このように他社製品と比べてもコスパがいいのですが、ひとつだけ注意点があります
それはOppoのOSのことです
ベースは当然AndroidなのですがColorOSと呼ばれカスタマイズされたものが搭載されています
iOSに近く若干癖があります
それはまあ好みの問題なので良いのですがOppoのスマホは全然アップデートが来ません
来ても1回程度で遅いです
注意です

まあそれを考慮しての値段なのでしょう
OnePlus(O…

Androidは何故VMを使用しているのに高速なのか

イメージ
Android端末は近年かなり高性能化しiPhone端末より処理が早いものもあります
しかし原理的にはiOSの方が有利でAndroidは不利です
Androidはいかにして高速化をおこなったのでしょうか
ざっくり少しだけ解説します

VMの変更と進化
リソースの乏しいモバイル環境下では通常のVMは使用できないためDalvik VMが開発されました

Android2.2ではJITコンパイラが導入されました
これまでは逐次実行だったのですがJIT導入により高速実行が可能になりました
わざわざjavaをVMが使用できるようにネイティブにコンパイルせずともバイトコードを直で実行できるようになりました
これによりCPUの負担が少なくアプリを実行できます
要は「処理→実行」が「処理実行」になったと
https://k-tai.watch.impress.co.jp/docs/column/keyword/369237.html

Android4.4ではDalvikVMがART VMに変更されます
ARTではAOTコンパイラが導入されます
要はインストール時にあらかじめコンパイルすることで実行中にコンパイルしなくても済むようにしたということです
「事前処理→実行」になったと

Android7.0からはAOTコンパイラとJITコンパイラを使い分けるようになります
AOTコンパイラだと実行前にとても時間がかかるということで一部はAOTでコンパイルするようになりました
プロファイルに基づき適切なタイミングで使い分けるとかなんとか
これによりメモリが節約されパフォーマンスが向上したそうです
要は「事前処理→処理実行」になったと
https://developer.android.com/about/versions/nougat/android-7.0.html?hl=ja

Android10.0では世代別GCが追加されたそうです
簡単に言うとコストの高いフルヒープGCよりコストや安く効率が上昇するとのことです
https://developers-jp.googleblog.com/2019/04/android-q.html

Zygote
initプロセスによってzygoteが生成されます
zygoteはすべてのAndroidのプロセスの親プロセスでzygoteの下にVMを展開しjav…

ガジェットの情報を集めるときに巡回するサイト

イメージ
ガジェット、つまりAndroid端末やiOS端末、タブレットやスタイラスペン、スマートスピーカーなどの情報を収集するときに巡回するサイトをまとめてみた(順不同)

Engadget 日本語版
https://japanese.engadget.com

定番 iPhone、Pixel、華為端末のレビューの他ノートPCの紹介や科学全般のニュースも
アメリカの携帯キャリアであるVerizonが運営している
おすすめ

ギズモード・ジャパン
https://www.gizmodo.jp/

こちらも有名 上と似たようなもん
しかし上と比べるとニュースが多め
運営は(株)メディアジーン

GIGAZINE
https://gigazine.net/

これも有名
サブカルが好きな人間ならよく見るでしょう
内容は科学より ただし情報が正しいとは限らない

iPhone Mania
https://iphone-mania.jp/

Apple系ブログ 企業運営
iPhone寄りでキモい記事もあるが反論しに来ているAndroidユーザーの訪問を見越してかAndroid系の記事もそれなりにある
おすすめはしない

ガルマックス
https://garumax.com/

企業系のくせに中華端末を詳細に大量レビューしている
サイトが見辛い
https://garumax.com/oneplus-7-pro-review-19817
OnePlus7 Proのレビューを投稿したらアマギフ5000円分もらえたのでみんなもやってみるといい

ITmedia
https://www.itmedia.co.jp/

派生サイトも多いがビジネス・実用的な内容が多い
ねとらぼは娯楽向けだが

ASUS好きのZenBlog
http://asus.blog.jp/

ZenFoneおよびASUS製品のファンブログ

8vivid
https://mupon.net/

デザインがかわいく情報の正確さや詳細さも一流
比較や解説中心
おすすめ

すまほん!!
https://smhn.info/

iPhoneAndroid系のブログ
ふーんって感じ

AndroPlus
https://androplus.org/

中華端末のレビューが中心
更新頻度は多くないが有名端末のレビューはよく見る

orefolder
https://www.…

【java】ランダムにしたいときのコード

イメージ
ランダム、擬似乱数を使用したいときのコードを書く
面倒くさいので今後ここにコードを貼って使い回す

import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; class main { public static void main(String[] args) { try {      SecureRandom number = SecureRandom.getInstance("SHA1PRNG");      System.out.println(number.nextInt(10));    } catch (NoSuchAlgorithmException e) {    } } }
参考:https://www.jpcert.or.jp/java-rules/msc02-j.html

通常の java.util.Random; は偏りが酷いので使うもんじゃない(※ケース・バイ・ケース)
セキュアランダム使おう(これも完璧ではないがライブラリ非使用で出来るので楽)
nextIntの括弧内に10と書けば0から9の整数が生成される
"" はアルゴリズムを指定するエレメント
Androidでは(N以降、2019年現在) "SHA1PRNG" 1択なのでこれでいい
何故 try catchを使用しているかというと、アルゴリズムは古くなってプラットフォームが受け付けなくなると上手く動作しなくなるので今後のことを考えて例外をスローしなければいけないのだ