[Android] Activity 和 SurfaceView 的生命周期
1、程序打开
Activity 调用顺序:onCreate()-onStart()-onResume()
SurfaceView 调用顺序: surfaceCreated()-surfaceChanged()
2、程序关闭(按 BACK 键)
Activity 调用顺序:onPause()-onStop()-onDestory()
SurfaceView 调用顺序: surfaceDestroyed()
3、程序切到后台(按 HOME 键)
Activity 调用顺序:onPause()-onStop()
SurfaceView 调用顺序: surfaceDestroyed()
4、程序切到前台
Activity 调用顺序: onRestart()-onStart()-onResume()
SurfaceView 调用顺序: surfaceChanged()-surfaceCreated()
5、屏幕锁定(挂断键或锁定屏幕)
Activity 调用顺序: onPause()
SurfaceView 什么方法都不调用
6、屏幕解锁
Activity 调用顺序: onResume()
SurfaceView 什么方法都不调用…...
[Android] APK 正式发布的安全选项设置
在 APK 正式发布时,有一些常见的安全选项需要设置:
1、禁止设置 debugable=true
取消前:取消后:1)Project -Build Automatically,即取消 Build Automatically
2)Project -Clean
3)Project -Build
4)Android Tools -Export Android application
2、禁止设置 allowBackup:
编辑 AndroidManifest.xml 文件,在 application 标签以及每个 activity 标签增加如下属性:
XHTML
android:allowBackup="false"
1
android:allowBackup="false"
3、检查 BroadcastReceiver 组件暴露风险
分为如下情形:
1)组件无需暴露
如果仅在应用内部通信,可以使用私有receiver。在AndroidManifest.xml为组件加上属性:
XHTML
android:exported="false"
1
android:exported="false"
该receiver可以接收相同应用程序组件或带有相同用户ID的应用程序所发出的消息。
2)组件需要暴露
分两种情况:
2.1)仅暴露给自己或同一公司的其他应用
方案A:
在AndroidManifest.xml为组件加上属性:
XHTML
android:protectionLevel="signature"
1
android:protectionLevel="signature"...
[Mac] Android 如何分析 Native Crash
0、系统环境
Mac OSX 10.11.6
Eclipse for Android 4.6.0
Android SDK v21
Android NDK r12d
1、环境安装
本文默认您已经安装了 Android SDK 和 NDK 开发包,其中安装目录分别为 ANDROID_SDK_PATH 与 ANDROID_NDK_PATH。
1)安装 ADB 工具(如已安装请跳到下一步):
检查你是否安装了 ADB 工具。打开 Window -Android SDK...
[Android] OpenCV v2.4.x Android 版本库编译
0、编译环境
Mac OSX v10.11.6
Android NDK r12b
CMake 3.0.2
OpenCV 2.4.9
1、编译方法
1)新建 Terminal 窗口,使用以下命令在环境变量中加入 NDK 地址,我这里使用 android-ndk-r12b 版本:
Shell
export ANDROID_NDK=~/my-android-ndk
1
export ANDROID_NDK=~/my-android-ndk
例如我的是:
Shell
export ANDROID_NDK=~/android-ndk-r12b/
1
export ANDROID_NDK=~/android-ndk-r12b/
2)进入你的 OpenCV 源码路径(我的版本是 2.4.9),进入 platform/scripts 目录:
Shell
cd platforms/scripts/
1
cd...
[Android] NDK 常见编译问题整理
1、错误:Are you sure your NDK_MODULE_PATH variable is properly defined ?
在编译 NDK 工程时候如果遇到如下类型的问题:
Android NDK: jni/clapack/SRC/Android.mk: Cannot find module with tag 'mymodule' in import path
Android NDK:...
[iOS] iOS 常见编译问题整理
1、错误:App Transport Security has blocked a cleartext HTTP
从 iOS 9.x 版本开始,App 选项默认不支持 HTTP 连网,当使用相关库的时候会出现如下错误:
App Transport Security has blocked a cleartext HTTP (http://) resource load since...
[iOS] watchOS 使用 .a 库时出现 ld: bitcode bundle could not be generated 错误
0、编译环境:
OSX Yosemite 10.10.5
Xcode 7.1
watchOS 2.0
1、问题描述:
在升级 Xcode 7.0 后,编译 watchOS 版本静态库如果依然是用 build 目录下的 Release-watchos 里面的 .a 就有可能出现如下 ld: bitcode bundle could not be generated 错误:这里面说你有库没有生成 bitcode...
[iOS] ffmpeg iOS 版本编译和 KxMovie 播放器编译
1、ffmpeg 编译:
ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
1)环境和版本:
Xcode 6.4
ffmpeg v2.7.2
2)下载 ffmpeg(可选,如果没有预先下载编译脚本也会下载):
http://www.ffmpeg.org/download.html
或者从百度网盘下载:
http://pan.baidu.com/s/1qWCBwHu
3)下载编译脚本:
下载 gas-preprocessor:
https://github.com/yuvi/gas-preprocessor
下载 FFmpeg-iOS-build-script:
https://github.com/kewlbear/FFmpeg-iOS-build-script
或者从百度网盘下载:
http://pan.baidu.com/s/1qWQi47U
4)将编译脚本和源文件解压后放入同一目录,如下:
.\build-ffmpeg.sh
.\gas-preprocessor.pl
.\ffmpeg-2.7.2\
5)在命令行运行:
Shell
sh build-ffmpeg.sh
1
sh build-ffmpeg.sh
如果没有错误的话,这个脚本就会在 FFmpeg-iOS 目录下生成 include 和 lib 文件,这就是我们需要的 iOS 版本 ffmpeg 库,包含了 armv7、arm64、i386、x64_64 四个版本。也就是说真机和模拟器版本都有了。
当然,如果你只需要其中某个版本,也可以在 thin 目录下找到相应的库。
2、编译 kxmovie...