Android Programming: Pushing the Limits -- Chapter 1: Fine-Tuning Your Development Environment
ADB命令:
@、adb help:查看adb命令。
@、adb devices:列出所有连接的安卓设备和模拟器。
@、adb push <local> <remote> 把计算机里的文件拷贝到设备中。
adb push e:\test.xml /sdcard/files.ldb/
@、adb pull <remote> <local> 把设备中的文件拷贝到计算机里
@、adb devices:可以查看连接设备的序列号(serial number)
@、adb {–s <serial number>} logcat
@、adb logcat <tag>:<priority>
举例:
在自定义类中定义一个日志标签,如:
private static final String LOG_TAG = “MyActivity”;
然后在此自定义类中的代码中使用此标签记录日志,如:
Log.d(LOG_TAG, “adb logcat test”);
这样就可以在命令行中使用MyActivity这个标签进行日志过滤,命令格式:
adb logcat MyActivity:* *:S
注:*:S不能少,*:S表示让logcat不展示其它日志(原文:*:S,which tells logcat to silence all messages.)。
@、使用adb命令,实现通过Wifi连接设备。注:安卓设备与计算机使用同一Wifi。
1、 首先使用USB连接设备与计算机;
2、 在命令行中输入以下命令
adb devices //确认下连接的设备,可以看到序列号。
adb tcpip 5555 //以TCP/IP模式重启设备的adb进程,并监听5555端口(adb默认端口)
adb connect <IP> //通知计算机的adb Service 连接 IP 地址,其中IP为设备的IP。
adb devices //再次确认连接的设备,此时可看到一个<IP>:5555 的设备。
3、 这样拔掉USB线后,依然可以使用此设备进行调试。
4、 当重启设备,或者使用 adb usb 命令,设备的adb进程又恢复USB模式。
@、adb shell 可以对设备使用命令行操作,类似于在Linux上操作一样。
@、adb shell am <options> 可以启动设备上的Service,Intent等。
@、adb shell pm <options> 可以对设备中的功能,权限进行查看、安装等操作。
具体了解adb命令,可查看http://developer.android.com/tools/help/adb.html
Application Exerciser Monkey:
@、一个命令行工具,能够通过生成伪随机事件来模拟用户操作对应用进行stress test。
@、命令:adb shell monkey –p <package name> <event count>
@、通过Monkeyrunner进行regression testing。You can find the API for the Monkeyrunner at http://developer.android.com/tools/help/monkeyrunner_concepts.html#APIClasses
Gradle:
The user guide for the new Gradle build system can be found at
http://tools.android.com/tech-docs/new-build-system/user-guide
ProGuard:
@、一个集成在Android SDK的工具,在发布应用时,可用此工具打乱代码(obfuscate your code),这样可增加应用被反编译的难度。使用方法:在build.gradle文件中添加:
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile(‘proguard-android.txt’)
}
}
@、可以优化代码,去除无用的代码,减小发布应用的大小。
代码重用:
@、使用JAR包,一般用于引用第三方的代码。使用方法:把JAR包拷贝到libs目录下,然后再build.gradle文件中添加:
dependencies{
compile files(‘libs/XXX.jar’) // XXX为要引用的JAR包名称。
}
@、使用library project,常用于一个工程里的多个应用,服务端和客户端等之间共享一些工具类,通用视图等。使用方法,在工程中新建一个module,类型选择Android Library;然后在其它模块的build.gradle文件中添加:
dependencies{
compile project(‘:libraries:XXX’) // XXX为创建的library project的名称。
}
版本控制:
@、git:
2、 Version Control with Git 一本介绍git的书。
@、创建自己的gitolite服务器,这样就可以远程访问Git respositories。
You can find the documentation and download for gitolite at
An excellent quick installation guide can be found at
http://gitolite.com/gitolite/qi.html
@、使用现成的服务器,比如GitHub http://github.com
@、代码检查工具Gerrit
You can find out more about Gerrit and download the server at
https://code.google.com/p/gerrit (新地址:https://www.gerritcodereview.com/)
静态代码分析:
@、使用Android SDK自带的lint工具进行代码分析。使用方法:在Android Studio的project视图中,右键 >> Analyze >> Inspect Code…
代码重构:
@、通过Refactor功能,实现静态变量提取,方法提取,方法签名变化等功能。详细信息请查看:http://www.jetbrains.com/idea/features/refactoring.html
开发者模式:
@、Android 4.2及以后版本系统,开发人员菜单被隐藏,开启方法:进入“关于手机” >> “版本号(Build Number)”点击7次 >> 返回上一层,可看到开发人员菜单。
Android Programming: Pushing the Limits -- Chapter 1: Fine-Tuning Your Development Environment的更多相关文章
- Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- ApiWrapper
前面两片文章讲解了通过AIDL和Messenger两种方式实现Android IPC.而本文所讲的并不是第三种IPC方式,而是对前面两种方式进行封装,这样我们就不用直接把Aidl文件,java文件拷贝 ...
- Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- Messenger
Messenger类实际是对Aidl方式的一层封装.本文只是对如何在Service中使用Messenger类实现与客户端的通信进行讲解,对Messenger的底层不做说明.阅读Android Prog ...
- Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- AIDL
服务端: 最终项目结构: 这个项目中,我们将用到自定义类CustomData作为服务端与客户端传递的数据. Step 1:创建CustomData类 package com.ldb.android.e ...
- Android Programming: Pushing the Limits -- Chapter 5: Android User Interface Operations
多屏幕 自定义View 多屏幕 @.Android 4.2 开始支持多屏幕. @.举例: public class SecondDisplayDemo extends Activity { priva ...
- Android Programming: Pushing the Limits -- Chapter 4: Android User Experience and Interface Design
User Stories Android UI Design 附加资源 User Stories: @.通过写故事来设计应用. @.每个故事只关注一件事. @.不同的故事可能使用相同的组件,因此尽早地 ...
- Android Programming: Pushing the Limits -- Chapter 3: Components, Manifests, and Resources
Android Components Manifest文件 Resource and Assets v\:* {behavior:url(#default#VML);} o\:* {behavior: ...
- Android Programming: Pushing the Limits -- Chapter 2: Efficient Java Code for Android
Android's Dalvik Java 与 Java SE 进行比较 Java代码优化 内存管理与分配 Android的多线程操作 Android’s Dalvik Java 与 Java SE ...
- Android Programming: Pushing the Limits -- Chapter 6: Services and Background Tasks
什么时候使用Service 服务类型 开启服务 后台运行 服务通信 附加资源 什么时候使用Service: @.任何与用户界面无关的操作,可移到后台线程,然后由一个Service来控制这个线程. 服务 ...
- [iOS翻译]《iOS 7 Programming Pushing the Limits》系列:你可能不知道的Objective-C技巧
简介: 如果你阅读这本书,你可能已经牢牢掌握iOS开发的基础,但这里有一些小特点和实践是许多开发者并不熟悉的,甚至有数年经验的开发者也是.在这一章里,你会学到一些很重要的开发技巧,但这仍远远不够,你还 ...
随机推荐
- BZOJ4610——[Wf2016]Ceiling Functi
水题一道,不是很懂为啥没人做... 1.题意:纠正一下..bzoj的题意不是很对...注意不是堆,是不平衡的二叉树,就是非旋转的treap, 另外...插入的时候,小于插在左边..大于等于插在右边 2 ...
- codemirror和ace editor的语法高亮
两个javascript库用做在线代码编辑器都是非常优秀的选择 我这两天对这两个类库做了简单的研究,重点是语法高亮的自定义: ace editor的主要思路是生成状态机,从一个startstate开始 ...
- 剑指Offer 二叉树中和为某一值的路径(dfs)
题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 思路: 递归,然后深搜,因为题目定义的, ...
- 将 JAR 转为 EXE – EXE4J 的使用教程(第一期)(转载)
http://www.iteknical.com/convert-jar-to-exe-phase-i-exe4j-tutorial/
- Docker 存储设置
docker默认单个容器可以使用数据空间大小10GB,docker可用数据总空间100GB,元数据可用总空间2GB.用docker info信息可以查看Data Space Total.Metadat ...
- 注册页面的js验证
简单的用户注册页面:(html) 包含用户名格式验证.邮箱格式验证.确认密码一致性验证和必填项验证.(纯javascript) <center> <h1>用户注册</h1 ...
- Java程序优化的一些最佳实践(转)
衡量程序的标准 衡量一个程序是否优质,可以从多个角度进行分析.其中,最常见的衡量标准是程序的时间复杂度.空间复杂度,以及代码的可读性.可扩展性.针对程序的时间复杂度和空间复杂度,想要优化程序代码,需要 ...
- 【leetcode】Spiral Matrix II
Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 to n2 in s ...
- Redis集群的部署
Redis集群分为主节点Master和从节点Slave,主节点只有1个,而从节点可以有多个,这样从节点和主节点可以进行数据的传输,Redis集群的性能将比单机环境更高,接下来是配置的过程 首先配置Ma ...
- Delphi操作Excel大全
Delphi操作Excel大全 DELPHI操作excel(转)(一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp ...