分类: 客户端技术

[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...