ここ数年でいくつかの、他のAndroidアプリをエミュレートするAndroidアプリが登場しています(Parallel Space, GO Multipleなど)。その多くがLINEなどのメッセージングアプリやゲームなどを2アカウント同時使用できることを謳っており、多くのユーザーに使われていると思われます。 本セッションではこれらのアプリがどのようにして他のアプリをエミュレートしているのか調査した結果と、これらのアプリを使用することによる危険性の分析について発表を行います。
連続して3つの現場で同じバグが発生しているアプリを直すという経験をしたので、おそらくかなり多発している気がするこのような不幸が発生することが減るように書き残しておきます。 Fragmentのaddを何も考えずonCreateに書くとActivityのリストア時にリークする 例えば以下のようなごく単純なサンプルアプリ。 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSupportFragmentManager() .beginTransaction()
[速報]「Kotlin」がAndroidの正式な開発言語に。開発元のJetBrainsとGoogleが「Kotlin財団」の設立も計画。Google I/O 2017 Googleが5月17日(日本時間5月18日未明)から開催中の年次イベント「Google I/O 2017」。初日の基調講演では、新サービス「Google Lens」の紹介や「Google Home」の日本発売、「Cloud TPU」や「TensorFlow Lite」の発表、新興国向けのエントリクラスとなる「Android Go」の発表などが相次いで行われました。 しかしその中でも会場からもっとも大きな歓声があがったであろうと思われるのが、プログラミング言語の「Kotlin」がAndroidの正式な開発言語になると発表されたときでした。 「Kotlinは完全にAndroidのランタイムと互換性があり、既存のコードとも相互運
DeclarativeLitho uses a declarative API to define UI components. You simply describe the layout for your UI based on a set of immutable inputs and the framework takes care of the rest. With code generation, Litho can perform optimisations for your UI under the hood, while keeping your code simple and easy to maintain. Asynchronous layoutLitho can measure and layout your UI ahead of time without bl
『Androidを支える技術 I』 ~ 60fpsを達成するモダンなGUIシステム ~ 『Androidを支える技術 II』 ~ 真のマルチタスクに挑んだモバイルOSの心臓部 ~ これらを著者の有野さん よりご恵贈いただきました。ありがとうございます。 始めて知る内容も多かったのですが、既に知っていることでも著者の意見が反映されているのを読むと、いくつものモバイルOSを見てきたハッカーからみるとこう見えるのか!という新鮮な面白さがありました。 IとIIのテーマは独立しているので、どちらから読んでもいいと思います。 以下個人的に面白かった章をピックアップします。 I の見どころ §1: ActivityThread.java にあるAndroidアプリのエントリポイント public static void main(String[] args) の役割 ActivityTheadはデバッグ
AndroidエミュレータとVirtualBox、Docker for Macを同時に実行できない問題 Docker for Macなどを起動中にAndroidエミュレータが起動できない状況がずっと続いていました。こういったメッセージが表示されるやつです。 Unfortunately, VirtualBox 4.3.30+ does not allow multiple hypervisors to co-exist.In order for VirtualBox and the Android Emulator to co-exist, VirtualBox must change back to shared use.Please ask VirtualBox to consider this change here: https://www.virtualbox.org/ticket
最近GoogleがSDカード向けにファイルシステムを作っている, というような話がありました. juggly.cn 記事中に ファイルシステムのネーミングからして、SD Card FS は SD / Micro SD カード専用のファイルシステムだと見られます。 とありますが, sdcardfsはそんな文字通りに「SDカードをターゲットにした」ものではありません. そもそも アドバンテージとして挙げられたのは一連のファイル操作のシステムコールをユーザー空間を行き来することなく実行できることで、一連の命令はカーネルとハードウェアの間でダイレクトにやり取りされ、これにより、コンテキストスイッチの影響を受けることがなくなり、ファイル操作のパフォーマンスが大幅に向上するそうです。 この部分がなんか変です. 普通「ユーザー空間を行き来」なんてしません. なにか間違って伝わっているような気がします.
本日、Androidアプリ「はてなブックマーク」バージョン2.11をリリースしました。 このリリースで、ブックマーク画面を刷新しました! 他にも、マイホットエントリーが正しく表示されていなかったり、アプリ内ブラウザで特定のリンクを開こうとするとクラッシュしたりなど、いくつかの不具合も修正しました。Google Playからアップデートして、ご利用くださいませ。 ▽ はてなブックマーク / ニュース・まとめを無料でブックマーク - Google Play の Android アプリ アップデート内容(バージョン 2.11.2) ブックマーク画面が新しくなりました! コメント・タグ付け・あとで読む・SNSへのシェアが、より簡単になりました ブックマーク画面でTwitterやFacebookのシェア設定がデフォルトでOFFになる不具合を修正しました(バージョン2.11.1) ブックマーク画面でク
Canvasにテキストを描画する際など、思い通りの位置に描画するためにはFontMetricsを使用して座標を計算します。 Androidの場合も基本的な考え方はjava.awt.FontMetricsと同じです。 FontMetricsの基本 中心線上に文字列を描画 吹き出しを描画 サンプルのソースコード FontMetricsSampleView.java FontMetricsの基本 ポイントとなるのは下記の4つの座標でいずれもベースラインからの位置を示しています。 ・FontMetrics.top ・FontMetrics.ascent ・FontMetrics.descent ・FontMetrics.bottom 図にすると下記のようなイメージになります。 ●がテキストを描画する際に指定した座標です。 // テキスト用ペイントの生成 Paint textPaint = new
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
Android Nから 縦横という概念自体がなくなる ので、デザイナーが対応できるかも考慮が必要。(-land就職子はdeprecated。-sw320などを使う) WebView有無 WebViewをアプリの一部として使う場合、レイアウト崩れを誰が解決するかを確定させておく必要がある。Android 4.3以下、4.4、6.0でそれぞれWebViewの挙動が多少変わったため、必ずOSバージョン選定と一緒に、WebViewの挙動チェックを行う端末も選定しておく。 「既存コンテンツをWebViewで表示する」案件 これは多くの場合炎上する。 なぜなら、そのように「既存コンテンツを再利用」するということは、モバイルコンテンツに対するコスト意識が希薄で、「簡単に考えている」からだ。 大抵のリスク説明は「そんな風には考えていない」「簡単でしょ」とと言われる傾向にある。 例えばレイアウト崩れの問題が
※2016/07/16 追記: これもう大分古いのでこれからAndroidやるなら最初からRecyclerViewからやったらいいんじゃないでしょーか Lollipop周りについてあんまり興味が湧かないと思いつつも触らないわけにもいかないしな、という感じでボチボチRecyclerViewやCardViewを触っていたわけですが、RecyclerViewの違和感がすごかったので色々考えた結果「RecyclerViewはListViewの代替ではないよね」って事に気づきました。新しいListViewだと思ってたのがいけなかったんですね。とりあえず色々考えた結論について以下に列挙します。 結論 RecyclerViewはListViewの代替ではない RecyclerViewはListViewの様な「沢山の子Viewの部分セットをrecycleしながら表示するView」という機能を分解したクラス
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Android Javaでは昔からAOSPのcoding style guidelineに則ったスタイルがとられることが多いようです。そのなかで、private fieldに "m" (member) や "s" (static member) などのプレフィクスをつけよ、というものがあります。 AOSP Java Code Style for Contributors | Android Open Source Project これはいわゆるハンガリアン記法の変種で、こういうやつですね。 class Recipe { private String mTitle; private List<String> mSteps; // ... } これについての態度はプロジェクトごとに様々ですが、たとえばクックパッド社のJavaのスタイルガイドでは明確に否定しています。 styleguide/
2023年12月 (1) 2023年11月 (116) 2023年10月 (79) 2023年9月 (28) 2023年8月 (7) 2023年7月 (6) 2023年6月 (101) 2023年5月 (229) 2023年4月 (201) 2023年3月 (206) 2023年2月 (147) 2023年1月 (193) 2022年12月 (146) 2022年11月 (54) 2022年10月 (1) 2022年9月 (1) 2022年8月 (1) 2022年7月 (3) 2022年6月 (1) 2021年9月 (1) 2021年8月 (8) 2021年6月 (3) 2021年4月 (4) 2021年3月 (6) 2021年2月 (1) 2021年1月 (3) 2020年12月 (2) 2020年11月 (2) 2020年10月 (5) 2020年9月 (12) 2020年8月 (40
去年Androidソースコードレビューで指摘する事が多い項目まとめという記事を書いた時はアプリ全体を一度に見るような機会が多かったため、内容も大きめのものばかり書いていましたが、最近はプルリクエスト単位でレビューする機会が増えたので細かい項目についてまとめてみようと思います。 ミリ秒で時間を指定する時に自前で計算している 1000L * 60L * 60L * 24Lのようなコード。 TimeUnitを使いましょう。 24時間の場合は以下のように書けます。 TimeUnit.DAYS.toMillis(1L) ある文字列がhttp/httpsで始まるかチェック URLUtil.isNetworkUrl()を使いましょう。 ただしequalsIgnoreCaseで判定してます。 ベースURLにパラメータを付与していってURLを生成したい StringBuilder#append("&key=
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く