Android 下使用 Crashlytics 遇到的问题 国内 Android 开发者应该主要使用友盟做数据统计分析,但个人在开发中发现这货越来越不靠谱,错误分析和事件统计数据时有时无,或者数据大起大落;甚至统计到的错误信息还包含友盟 SDK 自己的错误。跟他们客服和技术也沟通过,要么是让你发 apk 包,要么是让你自己看文档,问题始终没得到解决,然后很自然想到国外的类似工具。 Crashlytics 在国外用的比较多,特别是 iOS 平台。Squar 2013-10-21 编程 Android
从源码分析 Android 中 ViewPager 的 Adapter 数据不更新问题 在 Android 中使用 ViewPager 时,经常需要动态增删 View 或者 Fragment ,但是当更新完数据并调用 notifyDataSetChanged() 方法之后,发现数据并没有更新。 对于一般类似组件的 BaseAdapter 比如 ListView 、GridView 等只需要调用 notifyDataSetChanged() 方法,就会直接触发数据更新。因此,很多人认为 2013-09-29 编程 Android
禁用 Android 中 WebView 的默认高亮选中效果 Android 中嵌入的 WebView 有个默认的橙色高亮选中效果,比较影响用户体验,如果能去掉这个效果,那么用户就几乎完全感受不到和 native 页面的差异了。 首先想到的就是 WebView 的 setClickable() 和 setFocusable() 两个方法,发现没有任何效果。然后发现 WebSettings 还有个 setLightTouchEnabled() 方法,试过发现也 2013-09-28 编程 Android WebView CSS
Android 程序的反破解技术 我们知道,利用 apktool 可以将 apk 反编译为 smali 文件,利用 dex2jar 也可以将 apk 反编译为 jar 文件。这样的话,破解者就可以根据关键代码(比如资源文件中的字符串),修改代码,然后再利用 apktool 重新编译,并运行 signapk.bat 重新签名打包为己所用,而你辛辛苦苦几个月的努力一下回到解放前! 2013-08-24 编程 Android 安全
Android 中使用 Proguard 混淆 Java 代码 容易被反编译是 Java 、C# 这类解释型、托管型语言的通病,为了保障代码安全,通常采取的措施主要有两种: 核心逻辑采用难于被反编译的 native 语言(C / C++)编写,而 C# 通过 DllImport 等方式、Java 通过 JNI 都可调用 native 代码。 对代码进行混淆,C# 有 VS 自带的工具 Dotfuscator ,第三方工具有 DNGuard HVM 2013-08-08 编程 Android Proguard 安全
Android 中通过 URI 实现 Web 页面调用本地 App HTML 5 和本地 App 各有所长,现在公司的项目中也大量采用 HTML 5 做活动页面,这样本地代码和 HTML 5 的交互就是必须的。 说到 Android 端 Java 代码和 Web 端 HTML / JS 代码的交互,你可能最先想到的就是 WebView 的这两个方法: loadUrl(String url); addJavascriptInterface(Object 2013-08-06 编程 Android WebView JavaScript
解决 Android 中 AsyncTask 的多线程阻塞问题 Android 开发中执行耗时操作并更新 UI 时,通常有三种方式: 直接调用 runOnUiThread(new Runnable(){}) ,使用简单,但不能在 Activity 之外的环境使用,如 View 、Dialog 等; 使用 AsyncTask 实现,通过 onPreExecute() 、doInBackground() 、onPostExecute 三个方 2013-07-26 编程 Android
Android 平台 WebP 图片编码/解码的 native 实现 这两天公司在评估将图片切换为 WebP 格式,以节省带宽。 说实话,之前对 WebP 知之甚少,之前开发 Android ,只做过 SVG 相关的处理。 WebP 是 Google 提出的一种替换 png 和 bmp 的图片格式,根据 Google IO 2013 上的介绍,JPEG / PNG 转换为 WebP 格式后,文件大小平均可以减少 30% ,而加载时间可以减少三分之一。 2013-07-10 编程 Android WebP 图像编解码
Android 应用中未捕获异常的处理 Android 应用开发中常常需要捕获全局异常,以进行一些个性化的处理,如弹出提示,上传错误报告等; 一般的做法是实现 UncaughtExceptionHandler 接口,并重写 uncaughtException() 方法: 2013-07-02 编程 Android
macOS 下搭建开发环境 上周四家里遭遇入室盗窃,用了快四年的 Lenovo G450A 还有刚买的 HTC 8S 悉数被盗,只剩下一台三星 S5830 。 这一天不写点代码就感觉不自在,实在忍受不了每天回家只能看电视的无聊,果断入手了一台 Macbook Pro 。 之前用的是 Win8 + Ubuntu 12 双系统,第一感觉就是:原来 macOS 被 Ubuntu 山寨了,特别是 UI 层面。 macOS 的内核 D 2013-06-25 编程 macOS Ruby Octopress
macOS 实用命令行 macOS 内核 Darwin 基于 Unix,因此 ps 、 ping 、 tracert 之类的命令不在本文讨论之列。 本人使用时间不长,这里仅列出目前经常使用到的。 2013-06-22 编程 macOS