【0004】Android studio使用
【1】第一次使用Android Studio时你应该知道的一切配置
http://www.cnblogs.com/smyhvae/p/4390905.html
http://color-themes.com/?view=theme&id=563a1a7680b4acf11273ae94
【2】 在Android Studio中的同一个工程下复制一份module而不改变原来的demo?
首先第一步就是在你的module所在的目录复制一份,并粘贴
然后重命名成为你需要的名字,比如我根据我的需要,我把我的testservice改成了testservice_interface了
第二步,打开你的Android Studio -> Project,你就会看到你刚刚复制的module
第三步,找到在Project下的setting.gradle,打开,加上你的刚刚复制好的文件名
第四步,sync now,同步你的gradle,然后你刚复制的module名字字体就变黑体了
第五步,切换至Android视图,修改包名
最后,修改你的应用名称,你想改什么就什么呗,在manifest下label那,你会找得到的。
最最最后一步,也是非常重要一步,修改你的应用id,不然你这个app会覆盖掉你原来的app哦
你还会发现,其实应用的唯一标识是id,只要id不同,就是两个不同的app,也就是说你可以拥有两个名称一模一样的app安装在手机上,如果你喜欢的话
----------------------------------------------------------------------------------------------------------------------
【3】Android Studio中的同一个工程下复制一份module而不改变原来的demo?
首先第一步就是在你的module所在的目录复制一份,并粘贴
然后重命名成为你需要的名字,比如我根据我的需要,我把我的testservice改成了testservice_interface了
第二步,打开你的Android Studio -> Project,你就会看到你刚刚复制的module
第三步,修改包名
第四部,修改应用程序ID,在app目录下的build.gradle中,如果应用ID相同的话,怎么安装都是同一个应用程序
最后,修改你的应用名称,进入strings.xml下修改app name,这样AndroidManifest.xml里引用的appname就自动更改了。
------------------------------
【4】Android Studio导入第三方库的三种方法
今天在项目中使用一个图片选择器的第三方框架——GalleryFinal,想要导入源码,以便于修改,于是上网查找了一下方法,想到之前用到过其他导入第三方库的方法,现在做个小总结,以防忘记。
- Android Studio导入第三方库的方法我个人知晓的有三种:
- Gradle抓取
- libs导入
- 源码导入
Gradle抓取
Gradle抓取的方法最为简单,只需在Project->app文件夹下的build.gradle文件中添加依赖:

在builde.gradle文件中制定位置添加如下代码:

然后同步一下工程即可。
libs导入
将从网上下载对应的第三方库的jar包放入Project->app文件夹下的libs文件夹:

然后在单击jar包右键,选择“Add as library...”可实现导入;或者在我们上述的build.gradle文件中添加依赖:

源码导入
选择Android Studio菜单栏File->New->import Module...,弹出窗口选择Module的路径:

找到下载好的第三方库,找到其中用的Module:

选择galleryfinal,点击OK。
同步一下工程,会出现这样的报错信息:

点击“Open File”,找到错误的地方:


将“project_version”修改为版本名称,如"1.0":

再次同步工程,又会出现报错信息:

原因是找不到bintray.gradle文件,查找了以下网上的解决方法是删除或注释掉第三方库的build.gradle文件中的:
apply from: "../bintray.gradle"
然后我们继续同步工程,会发现Android Studio一直停留在:

这是因为第三方库需要用到相应的jar文件或gradle文件或arr文件,如果觉得这个过程太慢,可以考虑以下方法:
- FQ
- 手动下载相应文件,参考:听说你Android Studio更新Gradle很慢
- 放弃治疗,等待下载完毕
这里强调一下:当项目中引入第三方源码库数量比较多时,工程的编译时间会非常漫长,所以为了提高效率,在没有修改源码的需求前提下,不建议使用源码方式引入第三方库。
推荐:
一款优秀的本地图片选择框架GalleryFinal
作者:代码咖啡
链接:http://www.jianshu.com/p/b6c68c50ea19
來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【4】Android Studio导入第三方类库、jar包和so库
第三方类库源码
将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了。
项目的目录结构如下:
将第三方源码qqEmoji-lib拷到此目录,修改settings.gradle增加此lib:
include ':app',':qqEmoji-lib'
修改app下的build.gradle,在dependencies内加入:
dependencies {
compile project(':qqEmoji-lib')
...
在qqEmoji-lib下新建build.gradle文件,内容参考如下:
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 18
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.1.0'
//compile 'com.android.support:support-v4:19.1.0'
}
gradle的配置内容情参考最后第二个链接。
此时项目的结构见下图:
此时编译,通过,导入成功!
第三方类库jar包
这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖。如下:
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile files('libs/libammsdk.jar')
compile files('libs/universal-image-loader-1.8.6-with-sources.jar')
compile files('libs/YoumiSdk_v5.00_2015-01-08.jar')
}
第三方so库
通常来说,我们调用第三方的so库是不需要额外工作的,只需将其放入指定目录,然后在java文件中load即可。
比如我引用之前《第一个NDK程序》中编译出的libFirstLib.so,将其放到app/src/main/jniLibs/armeabi/下,在源码中引用:
static {
System.loadLibrary("FirstLib");
}
即可。程序运行如下图:
【5】Android Studio自动提取控件Style样式
【参考原文】http://blog.csdn.net/shibin1990_/article/details/51685042
如题,有时候看见一个布局写上几百行看上去会非常吃力麻烦,这时候抽取控件样式很有必要了, Android Studio提供了抽取Style样式的方式, 可能是藏的太深了, 很少人用
光标放在控件内: 右键 –>Refactor –> Extract –>Style…
选择之后弹出对话框:
如果你用的很多, 也可以为它设置快捷键:
打开Android Studio设置页面, 在Keymap中搜索extract, Style就是了, 然后右键单击Style 为它添加快捷键
弹出窗口, 直接按你想要设置的快捷键就OK了, 然后确认
然后就快捷键, 愉快的玩耍了
【6】AndroidStudio中使用plantUML
https://blog.csdn.net/u013831257/article/details/50118461
作者微博:攻城师sloop
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,用来描述 类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。是帮助自己理清众多类之间复杂关系的不二利器,也能帮助别人快速理解你的设计思路。
那么,我们怎么在AndroidStudio中创建自己的UML类图呢?接下来我就教大家如何用正确的姿势创建UML类图。
一.用正确的姿势安装panltUML插件
1.File->Settings->Plugins->Browse repositories
2.在搜索框输入plantUML
3.导入插件
(ps:由于我已经安装过了,所以没有Install plugin 按钮,未安装的都有这样一个按钮,如下,点击安装即可。)
如果以上步骤正确的完成,重启AndroidStudio 右键->new 的时候你会发现多了这么一堆东西,如果出现了这些说明plantUML已经正确的安装了。
当然了,所有事情都不会是一帆风顺的,当你迫不及待的想创建一个文件试试的时候你会发现下面的情况。
想必此时你的内心一定和我当时一样,一万头草泥马奔腾而过,这都是什么东西!!!
一切事情都是有原因的,而这个因为你还缺少一个必要的东西,就是大名鼎鼎的贝尔实验室开发的一个工具包:Graphviz。
二,用正确的姿势安装Graphviz
1.下载Graphviz
【下载地址戳这里】
2.安装
安装过程我就不详细讲解了,点击next后要记住安装的目录。之后下一步,直到完成就行。
三.用正确的姿势设置plantUML
1.点击右上角的设置按钮或进入File->Settings->Other Settings ->PlantUML
2.将文件路径填写为刚刚Graphviz的目录下bin目录中dot.exe文件。
(我的为:D:/Program/Graphviz/bin/dot.exe)
3.点击OK 刷新一下界面就能看到这个了。
讲到这里,就已经安装完成了,可以愉快的用代码来书写UML图了。
什么?你说你还不会书写的语法?没关系,其实我也不会,不过我有一个好的教程推荐给你,相信你看完就明白啦。
四.用正确的姿势学习使用UML
1.【PlantUML快速指南戳这里】
2.注意,这个教程中的语法和AndroidStudio中基本一致,区别就是开始和结束标志不同。
【7】Android Studio 中手把手教你设置switch/case代码块自动补齐
相信很多和我一样的小伙伴刚从Eclipse转到Android Studio的时候,一定被快捷键给搞得头晕了,像Eclipse中代码补齐的快捷键是Alt+/ ,但是在AS中却要自己设置,这还不是问题的关键,比如在Eclipse中,输入sw然后按住Alt+/的时候,switch/case代码块就自动补齐了,对于我等喜欢偷懒的人来说省去了很多麻烦,但是在AS中就算按住Ctrl+space快捷键也没法补齐代码块,是不是就不行了呢,下面我就献丑了,带大家一起来定制自己的switch/case代码块。
首先我们来看一下我们如何设置代码补全和提示的快捷键。
1.打开AS,如图所示settings --> keyMap --> comp
点击后面的快捷键黄色区域就可以设置自己的快捷键了(remove/add等设置),相信这个难不倒大家。
2.设置好了之后到代码编辑区编辑代码,输入sw,就会有相应的代码提示出现,如下图所示。
按回车键之后出现的情况如下所示
我们发现AS中并没有像Eclipse中那样为我们补齐剩余的代码,还是需要我们手动去敲,是不是真的就只能这样呢?谷歌当然不会这样了!
3.那到底该怎样去设置呢?我就不跟大家卖关子了,接着往下看!
还是进入settings --> Editor --> Live Templates ,我们就可以看到AS默认的代码补齐按键为tab,但是相信我,就算你现在到代码编辑区去输入sw,然后按Tab键的话,也不可能出现你想要的结果。
4.好的,重点来了,请看仔细了。
按照图中的步骤操作就可以了,设置完了之后记住先点击Apply,再点击Ok。不然修改不会生效
下面我在区代码编辑区输入我们自定义的swi快捷键,然后按住Tab键,你会发现自己定义的代码块出来了,是不是很神奇呢?
然后回车,就会发现原来没有的代码块都出来了
好了,switch/case代码块的自动补齐到这里就结束了,但是还没有完……
5.细心的小伙伴肯定会去钻研这Live Templates面板,你会发现很多常用的代码补齐快捷键。如图
其实我想AS的初衷是想让大家自己定制自己的代码块,能够熟练的掌握这个技巧,那么运用AS开发就会节省很多时间,如果有需要,大家还可以定制更多属于自己的代码块,希望能够帮到大家。
我也是个安卓菜鸟,希望能和大家一起进步!
有兴趣的还可以看看这篇,补充的《 Android Studio中教你创建代码块---(续)》
【8】实现Android studio设置自动导包及自动导包快捷键
实现Android studio设置自动导包及自动导包快捷键
方式一:Android studio只有导单个包的快捷键:Alt+Enter。
方式二:设置自动导所有的包
点击File→Setting,Setting→Editor→General→Auto Import,勾选Add unambiguous imports on the fly即可自动导包,点击apply→OK
【10】【Studio】解决格式化时,注释部分没有缩进的问题
我个人喜欢注释也要缩进对齐。其实这个需要自己设置,打开studio的设置,依次找
Setting->Code Style->Java->Wrapping and Braces->Keep when reformatting->Comment at first column->取消勾选
图文结合更清晰
设置完后,再格式化一下代码(默认Ctrl+Alt+L),再看效果。
1)设置行宽,Preferences->Editor->Code Style, 右侧找到Right margin (columns),默认是100,建议设置为120。
2)设置格式化换行,Preferences->Editor->Code Style->Java,点击右侧标签Wrapping and Braces,勾选Line breaks和Ensure right margin is not exceeded。
【11】Android Studio 光标返回上一次浏览的位置
快捷键 Ctl+Alt+方向键左右
可是windows的这个快捷键被占用了,是切换屏幕的显示方向。导致用as等编译软件时相当的蛋疼。解决方法
用的windows10:
windows键–>搜索msconfig(打开系统配置界面)–>服务–>找到 Inter HD Graphics Control Panel Service ,前面的对勾 取消掉。
重启电脑。 OK,很嗨皮。
【12】https://www.jianshu.com/p/739c8414109d
Structure结构
上面有说, 可以通过 Alt + 7 快捷键 调出来。
个人觉得, 这个对于查看代码结构,还是很方便的。直接可以看到代码的大体结构。
我们以 android-23 的 View 类,为例
右侧2个箭头

【箭头向下 指向横线】
选中后, 我们点击左侧,具体的类 或者 接口。 我们发现右侧会跟着移动

取消选择以后,可以发现不会跟着移动

【箭头向下 指向横线】,表示随着左侧点击,右侧自己查找类和方法
【横线指出 向下箭头】
选中后, 我们点击右侧, 具体代码位置。 发现也会到对应的位置。

同理, 取消后,就不存在了
【横线指出 向下箭头】,表示随着右侧点击,左侧查找所在类和方法
或者总体自己理解
横线,表示代码。 一个是选择后,去找代码。 一个是从代码,去找位置
展开合并

我们【点击Expand All,展开全部】

可以发现,左侧全部展开了
【点击 Collapse All, 合拢全部】

可以发现,左侧全部合拢了
这2个,表示左侧 全部合拢, 全部展开
匿名类
显示匿名类

具体匿名类概念,这里就不描述了,属于基础,可以参考
http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
显示继承

选择之前,是这样的

选择之后,可以发现,浅灰色的方法,都是继承自父类的(双击,可以进入父类查看)

显示非公开

点击前,我们可以看见左边有一些类

点击后,我们可以发现, 一些private等的类,也可以看见了

这里,我们可以看见 DeclaredOnClickListener 私有静态类
(都说反射效率低, 但是可以发现 很多底层的类, 都大量运用反射)

取消点击后, 我们在左边就看不见对应的类了
显示属性
这里f , 就是 field的意思, 也就是 属性, 当然,我觉得理解成 字段 也挺好。

点击前,我们只能看见 类,接口和方法
点击后,我们可以看见对应的属性

按属性排列
这里P,是 Property。
自己 理解 Property属性, 和 Field的区别。
(Property是对外的, 通常是为了让外面知道,通常有setter或getter)
(Field 不存在对不对外, 类中需要存储, 都属于Field)
(自己参考:Properties and fields are the same, except a property is a settable/gettable field)

我们拿android-23的View 的 setOnClickListener() 方法举例。
我们调整成, Autoscroll from Source
也就是,【横线指出 向下箭头】, 通过源码去移动左侧的标记

当我们点击【P】的时候

我们可以发现,左侧 把对应的方法
放置到了 属性 onClickLister: OnClickListener 下面
这样, 我们可以按 Property属性去了解作者的代码想法
按实现归类

这个符合,自己看不太清楚, 感觉 像一个【I】,也就是 Interface的意思

我们可以发现, View 实现 3个接口, 2个类的内部接口Callback, 一个公开接口AccessibilityEventSource
拿 KeyEvent的内部接口为例:

onKeyDown 方法 是经常用的
我们在View中, 找到实现

这个时候,左侧方法是单独排列的。
当我们点击 【I】的时候,

我们可以发现,是按接口类型, 排列
这样, 当一个类实现多个接口的时候
可以清楚看出哪些方法是实现哪个接口
按字母顺序排序
按字母顺序排列, 这个比较好理解

点击后,就按字母顺序排列

按是否可见排列
要按可见度排序, 要先打开 show non-public【显示非公开】

我们以装载 OnClickLister的 静态内部类 ListenerInfo 举例(没有修饰符,是不可见的)
这个时候,我们没点击 可见度排序 前
我们发现 ListenerInfo 是按 代码排序的, 比较靠前

点击后:

就按可见度排序,排到后面了
其他表示
访问权限
访问权限修饰符修饰成员变量和方法
- public:表明该成员变量和方法是共有的,能在任何情况下被访问。
- protected:必须在同一包中才能被访问。
- friendly:在一个包中或者子类中才能被访问。(可以不写)
- private: 只能在本类中访问。
我们看见在【m】后面(当然,类和接口后都有)

有这4中,也就是分别代表上面的四种修饰符
-
public:
Paste_Image.png -
protected:
Paste_Image.png -
friendly:
Paste_Image.png -
private:
Paste_Image.png
其他1
Field:字段属性

Method:方法

Class:类

Interface:接口

其他2
这里比较多, 就拿 方法m 来举例子:
final:

static:

作者:dodo_lihao
链接:https://www.jianshu.com/p/739c8414109d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
[12]【Android】Android Studio版本更新后Gradle版本不匹配问题解决
前言
相信很多童鞋都遇到过这种情况:在升级Android Studio版本后(如升级2.3 Beta1版本至2.3 Beta3版本),我们会发现项目不能够顺利的构建,错误信息如下:
Error:(1, 0) The android gradle plugin version 2.3.0-beta1 is too old, please update to the latest version.
To override this check from the command line please set the ANDROID_DAILY_OVERRIDE environment variable to "xxxxxxx"
Upgrade plugin to version 2.3.0-beta3 and sync project
Open File

通过以上信息我们可以看出该问题是由于gradle plugin版本过低导致的,它要求我们升级插件版本到2.3.0-beta3。
什么是Gradle plugin?
看到这里,有的童鞋可能会问“什么是gradle plugin?”,实际上我们项目中的Gradle有两个,其中一个是本地的Gradle(Android Studio的构建工具--Gradle构建工具是任务驱动型的构建工具,并且可以通过各种Plugin插件扩展功能以适应各种构建任务),另外一个是Android Studio项目中的插件gradle plugin(对应项目的Gradle插件),我们可以在File->Project Structure->Project中看到Gradle与gradle plugin的版本信息,如下图:

解决办法
- FQ后升级
如果你具备FQ条件的话,FQ后直接点击Upgrade plugin to version 2.3.0-beta3 and sync project即可完成对该插件的升级。 - 升级Gradle到最新版本
- 访问https://services.gradle.org/distributions/ 来下载与之匹配的Gradle版本或者最新的Gradle工具包;
- 解压到Android Studio的gradle目录下;
- File->Setting->Build,Exection,Deployment->Gradle->Use local gradle distribution,修改Gradle home为AS安装目录下最新的gradle版本;
- 修改对应Project的build.gradle中的
com.android.tools.build:gradle:版本号为提示版本(如修改classpath 'com.android.tools.build:gradle:2.3.0-beta1'为classpath 'com.android.tools.build:gradle:2.3.0-beta3'); - 修改gradle-wrapper.properties中distributionUrl上的版本号与当前Gradle版本号一致(如修改
distributionUrl=https\://services.gradle.org/distributions/gradle-3.2-all.zip为distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip); - 重新同步。
【12】Android Studio出现Failed to open zip file问题的解决方法
【原文地址】https://www.cnblogs.com/Sharon2017/p/7810774.html

【13】android 安装APK编译报错DELETE_FAILED_INTERNAL_ERROR Error while Installin
问题描述: Application will not run on device: INSTALL_CANCELED_BY_USER , DELETE_FAILED_INTERNAL_ERROR ?

点击确认后,运行没有成功,却在Run窗口行出现:INSTALL_CANCELED_BY_USER , DELETE_FAILED_INTERNAL_ERROR的报错问题
针对以上问题,几种解决方式(来源于网上):
-
Build –> Clean Project.

-
setting–> instant run –> 禁止开启
-
在项目的根目录中运行命令行:gradlew clean。(可以以直接在android studio中Terminal窗口中运行该命令)
以上方法都走了一遍,结果却是无效的,犹如一万只草泥马飞奔而过。泪崩的继续找,最后锁定原因出现在手机上。
注意点:小米手机的奇葩坑,MIUI 8 开发调试要是出现: adb install失败 100%稳定复现 INSTALL_CANCELED_BY_USER。结果是小米的安全中心2.0.5版出现了问题。
解决方法: 现在小米手机上安装LBE安全大师,然后打开软件,选择软件管理–>软件卸载–>安全中心–>换成出厂设置的
版本。(来源于小米论坛)。
最终运行结果:
PS: 最近期间,走完以上步骤,发现红米Note3又发癫,调试不了。
若是上一步骤还是不行,USB调试不了,则需走一步:
安装LBE安全大师,然后打开软件,选择软件管理–>软件自动安装监控->允许自动安装
资源参考:
今天在编译程序时把项目安装到别的手机时总报错 DELETE_FAILED_INTERNAL_Error ErrorwhileInstallingAPK说:删除失败,安装失败,以前也遇到过这样的问题,看了网上别人的博客,大多是说:开发者选项--->USB调试未打开之类,我可以很明确的告诉你,虽然我是个新手,但这个我还是会注意的,经过再三确认我知道并不是这个原因。那就来说一下,到底是什么原因产生的把。总体来说:就是我以前这手机总装过这个APP
今天在编译程序时 把项目安装到别的手机时总报错
DELETE_FAILED_INTERNAL_Error
Error while Installing APK
说:删除失败,安装失败, 以前也遇到过这样的问题,看了网上别人的博客, 大多是说:开发者选项--->USB调试未打开之类, 我可以很明确的告诉你,虽然我是个新手,但这个我还是会注意的, 经过再三确认 我知道 并不是这个原因。
那就来说一下,到底是什么原因 产生的把。总体来说:就是我以前这手机总装过这个APP 但是卸载的不干净, 重新装时,包名起了冲突,导致无法装上。
解决办法: 找到对应的包名,将其删除 。 如我的就在/data/local/tmp/com.bill99.kuaiqian 下 我把这个删除了就 重新 adb reboot 就成功 装上了
另外 在贴一些 网上 对此类问题的解决办法
第一步:先把原来已经存在的相同包名的APK删除,如:adb shell rm system/app/OutdoorMeter/OutdoorMeter.apk
第二步:将data/data/目录下该应用的包名的目录删除掉,如:adb shell rm -rf data/data/com.runbo.outdoormeter/
第三步:重启android手机 adb reboot
第四步:再重新安装该APK
大多都差不多, 其实开始的是,可以先去检查一下 是否处于“”开发者模式“”,USB是否打开 再来进行 我说的这些操作。。。





浙公网安备 33010602011771号