参考
安卓开发中必备的那些神器APP
参考链接
1. apkpure
==强烈推荐!!!!!==
- 无需Google play 即可下载 play 商店里的各种应用
2. 当前Activity
参考链接
该款软件可显示最前台页面所在应用的包名及Activity
3. vysor
- 用 chrome 来控制手机,pro版支持wifi
- 更多玩法点这里;Vysor 情怀玩法 (番外篇)
4. MLManager
- 该款软件是一个95年的西班牙朋友写的,只要用来提取apk到本地,分享apk。国内也有一款类似的软件,和这个风格一样,咕咚大神写的AppPlus,遗憾的国内的不支持提取系统应用,如果提取小米手机的扫一扫等系统应用就望而却步了
5. easydeviceinfo
参考链接
方便的获取手机的各种数据信息的库
6. Trinea
参考链接
滴滴大神开发的一款快速调试及查看手机信息的应用
7. 安卓开源库收集整理:
参考链接
Android Studio
Android Studio 导入 Android 源码
参考链接
配置调试cocos2dx
1. 环境
- Android Studio 2.3.3
- NDK 16
- LLDB
通过选择 Tools - Android - SDK Manager - SDK Tools - 选择LLDB和NDK进行安装
查看 Files - Project Structure - SDK Location - Android NDK location: 选择通过上面步骤下载的NDK路径(ndk-bundle目录的)
- cocos2dx 3.15以上
2. 修改proj.android-studio\app\jni\Android.mk
在你的ndk目录下修改build/core/default-build-commands.mk
将:
1 | TARGET_FORMAT_STRING_CFLAGS := -Wformat -Werror=format-security |
修改为:
1 | TARGET_FORMAT_STRING_CFLAGS := -Wformat #-Werror=format-security |
1 | LOCAL_PATH := $(call my-dir) |
3. 修改Application.mk
1 | buildscript { |
Android Studio问题
0. Android Studio c++ 无法单步调试的系列坑
参考链接
问题描述
1 | UnsupportedMethodException |
解决方法
- 关闭Instant Run。
Windows & Linux:
- File -> Settings -> Build, Execution, Deployment -> Instant Run.
Mac:
- Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run.
1. androidstudio升级gradle
参考链接
解决步骤
- radle官网上下载2.13包,直接解压
- 在androidstudio的file–setting中搜索gradle设置gradle文件直接指向本地目录的刚才解压的路径
2. AndroidStudio如何配置NDK/JNI开发环境
参考链接
3. Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’.
问题描述
Android Studio 重复引入包的问题和解决方案
比如 app module 与 library module 各自 libs 目录中嵌入了相同的 Jar 包。这种情况也比较好解决,只需要将 app module 下的重复 jar 包删除即可。
4. error: format not a string literal and no format arguments [-Werror=format-security]
解决方法
在你的ndk目录下修改build/core/default-build-commands.mk
将:
1 | TARGET_FORMAT_STRING_CFLAGS := -Wformat -Werror=format-security |
修改为:
1 | TARGET_FORMAT_STRING_CFLAGS := -Wformat #-Werror=format-security |
也就是把后面部分用#号注释掉
Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。
Gradle基础
1. 概念
差异管理
通过gradle的productFlavor与buildtype可以实现静态级的差异控制可以参考
依赖管理
支持多方式依赖管理:包括从maven远程仓库、nexus私服、ivy仓库以及本地文件系统的jars或者dirs
这里可以找到所有你需要的依赖,而你需要的只是指定一个坐标,如下:
1 | compile 'com.squareup.picasso:picasso:2.3.3' |
剩下的依赖的寻找,下载,添加到classpath等你都不需要去关心,通过这种方式来维护依赖的好处有以下几点:
1 | 依赖不会进入到你的版本控制仓库中(默认会缓存到~/.gradle/下) |
项目部署
通过一些插件,可以实现自动将你的输出(.jar,.apk,.war…)上传到指定仓库,自动部署
基于groovy脚本构建,其build脚本使用groovy语言编写
2. Gradle 构建基础
Projects 和 tasks
任何一个 Gradle 构建都是由一个或多个 projects 组成。每个 project 包括许多可构建组成部分。 这完全取决于你要构建些什么。
每个 project 都由多个 tasks 组成。每个 task 都代表了构建执行过程中的一个原子性操作。如编译,打包,生成 javadoc,发布到某个仓库等操作。
1 | task upper << { |
Output of gradle -q upper
1 | > gradle -q upper |
任务依赖
1 | task hello << { |
Output of gradle -q intro
1 | > gradle -q intro |
动态任务
1 | 4.times { counter -> |
Output of gradle -q task1
1 | > gradle -q task1 |
3. Gradle Java 构建
采用 Java 插件
1 | apply plugin: 'java' |
可以运行 gradle tasks 列出任务列表。这样便可以看到 Java 插件为你添加了哪些任务
添加 Maven 仓库
1 | repositories { |
添加依赖
1 | dependencies { |
4. 多项目构建
定义一个多项目构建工程需要在根目录(本例中与 multiproject 同级)创建一个setting 配置文件来指明构建包含哪些项目。并且这个文件必需叫 settings.gradle 本例的配置文件如下:
1 | include "shared", "api", "services:webservice", "services:shared" |
工程依赖
同一个构建中可以建立工程依赖,一个工程的 jar 包可以提供给另外一个工程使用。例如我们可以让 api 工程以依赖于 shared 工程的 jar 包。这样 Gradle 在构建 api 之前总是会先构建 shared 工程。
1 | dependencies { |