androidstudio21
⑴ 纯新手 android studio 怎么运行项目
android studio运行HelloWorld详解:
1、打开project视图:
2、在app目录下,build.gradle文件如下
文件路径: project视图下,app/build.gradle
apply plugin: 'com.android.application'
android {
// 编译器选择的版本
compileSdkVersion 14
buildToolsVersion "21.1.1"
// 默认配置
defaultConfig {
// 应用程序包名
applicationId "com.example.shiyanlou.myapplication"
// 最小的版本,即手机需要13的sdk才能运行
minSdkVersion 15
// 目标sdk
targetSdkVersion 21
// app 版本号
versionCode 1
// app 版本名
versionName "1.0"
}
// build 配置,暂不用管
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
// 外接的包需要在下面添加
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
3、在src/main/java/com.example.shiyanlou.myaplication目录下,MainActivity.java
package com.example.shiyanlou.myapplication;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
/**
* 自定义Activity类,要求必须继承android.app.Activity;
* 此处因为新建的时候选择了BlankActivity,默认继承ActionBarActivity
* 由于Activity是android四大组件(Activity(活动),Service(服务),
* BroadcastReceiver(广播接收者),Content Provider(内容提供者))之一, 因此必须在功能清单文件(AndroidManifest.xml)中进行注册,注册方式为:
* <activity
android:name="com.example.shiyanlou.myapplication.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
*/
public class MainActivity extends ActionBarActivity {
/**
* onCreate在Activity被创建时被调用,而且只调用一次,主要用来完成初始化工作
* 需要注意的是,此时的super.onCreate(savedInstanceState);不能省略,它用于保存恢复现场
*/
*
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
* 将Activity到用户界面设定为R.layout.activity_main,即
* res/layout/activity_main.xml
* 可在build/generated/source/r/debug/com../R.java下查看layout静态内部类中的activity_main的静态成员
* 对应的是res/layout/activity_main.xml*/
setContentView(R.layout.activity_main);
}
/**
* 在用户单击手机上的菜单键时触发,用来弹出菜单
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/*
* MenuInflater getMenuInflater():得到菜单填充气对象
* MenuInflater.inflate();执行填充操作
* R.menu.main:将菜单界面定位到res/menu/main.xml
*
* R.menu.main:访问R.java中中的静态内部类menu中的静态成员main,
* 对应的资源文件在res/menu/main.xml
*/
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
4、HelloWorld 布局界面如图
文件路径: project视图下,app/src/main/res/layout/activity_main.xml
5、在androidstudio中查看运行结果是通过Android下的Logcat查看的,如下图
⑵ android studio 怎么安装
一.装前设置
1 安装JDK
下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
注意需要选择适合自己系统的版本.
2配置java环境变量
控制面板→系统→高级系统设置→“高级”下的“环境变量”:
在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径,在这里就填写“C:Program FilesJavajdk1.7.0_21”了
在系统变量里点击新建变量名填写CLASSPATH,变量值填写“.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar”。注意不要忘记前面的点和中间的分号。
在系统变量里找到Path变量,这是系统自带的,不用新建。双击Path,由于原来的变量值已经存在,故应在已有的变量后加上“; C:Program FilesJavajdk1.7.0_21in注意前面的分号
二、安装Android Studio
在http://developer.android.com/sdk/installing/studio.html#download下载Android Studio安装文件,下载完后一直next就OK。
如果你的系统不是win64位的系统而是32位的参考以下解决方案:
都是针对执行studio.bat出现错误导致android studio运行不起来,最后都是异工同曲:
解答下32位win7系统的问题。
在安装目录中找到bin下的studio.bat,用编辑打开studio.bat,第25到28行:
SET JRE=%JDK%
IF EXIST "%JRE%jre" SET JRE=%JDK%jre
SET BITS=
IF EXIST "%JRE%libamd64" SET BITS=64
可以看到里面设置软件支持系统位数是64位,而我自己所用电脑是32位的jre/lib目录下只有i386文件,尝试把
IF EXIST "%JRE%libamd64" SET BITS=64
改为
IF EXIST "%JRE%libi386" SET BITS=32
对于32位的xp系统:
SET BITS= 改为SET BITS=32
64位系统不变
安装示意图:
安装成功!
⑶ android studio怎么设置引导页
基本上现在所有的应用都会有一个欢迎界面,在欢迎界面对应用做一个整体的介绍,然后在跳入到主界面,这次要说的这个引导页就是带翻页的引导页。效果如下所示
概要实现
主要分为两部分功能,一个是翻页效果,一个是页面位置指示器。为了实现翻页效果我采用系统自带的ViewPager对象来实现;页面指示器则通过一个LinearLayout在其中放置相应个数的图片,然后根据页面的滑动动态修改各个图片的资源。布局文件如下所示
复制代码
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 tools:context=".MainActivity" >
6
7 <android.support.v4.view.ViewPager
8 xmlns:android="http://schemas.android.com/apk/res/android"
9 android:id="@+id/welcome_pager"
10 android:layout_width="match_parent"
11 android:layout_height="match_parent" />
12
13 <!-- 图片位置指示器 -->
14 <LinearLayout
15 android:id="@+id/director"
16 android:layout_width="match_parent"
17 android:layout_height="wrap_content"
18 android:gravity="center_horizontal"
19 android:orientation="horizontal"
20 android:layout_marginBottom="15dip"
21 android:layout_alignParentBottom="true"
22 >
23
24 <ImageView
25 android:layout_width="wrap_content"
26 android:layout_height="wrap_content"
27 android:background="@drawable/pageindicator_on" />
28
29 <ImageView
30 android:layout_width="wrap_content"
31 android:layout_height="wrap_content"
32 android:background="@drawable/pageindicator_off" />
33
34 <ImageView
35 android:layout_width="wrap_content"
36 android:layout_height="wrap_content"
37 android:background="@drawable/pageindicator_off" />
38
39 <ImageView
40 android:layout_width="wrap_content"
41 android:layout_height="wrap_content"
42 android:background="@drawable/pageindicator_off" />
43 </LinearLayout>
44
45 </RelativeLayout>
复制代码
ViewPager
先来看下官方解释:Layout manager that allows the user to flip left and right through pages of data.意思是说,Viewpage是一个允许用户在多个页面数据之间通过左滑或者右滑的方式切换页面数据的布局管理器。
主要功能点有两部分,数据适配器Adapter,和事件监听器OnPageChangeListener。数据适配器用来管理这个ViewPager对象的显示内容,而OnPageChangeListener用来处理当页面切换的时候的行为动作,我修改页面指示器就是通过这个事件来完成的。
适配器
复制代码
1 class pagerAdapter extends FragmentPagerAdapter{
2
3 public pagerAdapter(FragmentManager fm) {
4 super(fm);
5 }
6
7 @Override
8 public Fragment getItem(int arg0) {
9 //得到要显示的对象并初始化图片
10 WelcomeFragment fm = new WelcomeFragment();
11 fm.setImg(imgs.get(arg0));
12
13 return fm;
14 }
15
16 @Override
17 public int getCount() {
18 return imgs.size();
19 }
20
21 }
复制代码
上面这段就是ViewPager要用的适配器了,其中imgs是一个id数组,存放了要在欢迎界面展示的图片的id,WelcomeFragment是一个Fragment类,用来展示页面内容,这两个代码会在完整代码中体现。两个方法需要实现,getCout,用来表示有多少个页面;getItem,用来获取指定位置的Pager对象。
imgs数组定义及实现:
复制代码
1 List<Integer> imgs = null;
2 //初始化欢迎界面图片数组
3 imgs = new ArrayList<Integer>();
4 imgs.add(R.drawable.help1);
5 imgs.add(R.drawable.help2);
6 imgs.add(R.drawable.help3);
7 imgs.add(R.drawable.help4);
复制代码
WelcomeFragment类定义
复制代码
1 public class WelcomeFragment extends Fragment {
2
3 View view = null;
4 int imgId ;
5 @Override
6 public View onCreateView(LayoutInflater inflater, ViewGroup container,
7 Bundle savedInstanceState) {
8 view = inflater.inflate(R.layout.welcome_fragment, null);
9
10 ImageView fragmentVw = (ImageView) view.findViewById(R.id.welcome_Img);
11 fragmentVw.setBackgroundResource(imgId);
12 return view;
13 }
14
15 /**
16 * 为该Fragment设置显示图片
17 * */
18 public void setImg(int imgID){
19
20 imgId = imgID;
21 }
22 }
复制代码
WelcomeFragment布局文件
复制代码
1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_width="match_parent"
3 android:layout_height="match_parent" >
4
5 <ImageView
6 android:id="@+id/welcome_Img"
7 android:contentDescription="welcome"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent" />
10
11 </FrameLayout>
复制代码
事件监听器OnPageChangeListener
这个监听器用来监听页面切换事件,实现这个接口用来处理页面切换时,页面指示器跟着改变状态。实现代码如下
复制代码
1 /**
2 * 页面切换的事件监听器
3 * */
4 class pageChangeListener implements OnPageChangeListener{
5
6 /**
7 * 当某一个页面被选中的时候触发
8 * */
9 @Override
10 public void onPageSelected(int arg0) {
11 int count = directorLayout.getChildCount();
12 /**
13 * 指示器自对象顺序和页面显示顺序一样的设置为on,其余的设置为off
14 * */
15 for(int i=0;i<count;i++){
16 ImageView iv = (ImageView) directorLayout.getChildAt(i);
17 if(i == arg0){
18 iv.setBackgroundResource(R.drawable.pageindicator_on);
19 }else{
20 iv.setBackgroundResource(R.drawable.pageindicator_off);
21 }
22 }
23 }
24
25 @Override
26 public void onPageScrolled(int arg0, float arg1, int arg2) {
27 // TODO Auto-generated method stub
28 }
29
30 @Override
31 public void onPageScrollStateChanged(int arg0) {
32 // TODO Auto-generated method stub
33 }
34 }
⑷ android studio怎么运行程序
android studio运行HelloWorld详解: 1、打开project视图: 2、在app目录下,build.gradle文件如下 文件路径: project视图下,app/build.gradle apply plugin: 'com.android.application' android { // 编译器选择的版本 compileSdkVersion 14 buildToolsVersion "21.1.1" // 默认配置 defaultConfig { // 应用程序包名 applicationId "com.example.shiyanlou.myapplication" // 最小的版本,即手机需要13的sdk才能运行 minSdkVersion 15 // 目标sdk targetSdkVersion 21 // app 版本号 versionCode 1 // app 版本名 versionName "1.0" } // build 配置,暂不用管 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } // 外接的包需要在下面添加 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' } 3、在src/main/java/com.example.shiyanlou.myaplication目录下,MainActivity.java package com.example.shiyanlou.myapplication; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; /** * 自定义Activity类,要求必须继承android.app.Activity; * 此处因为新建的时候选择了BlankActivity,默认继承ActionBarActivity * 由于Activity是android四大组件(Activity(活动),Service(服务), * BroadcastReceiver(广播接收者),Content Provider(内容提供者))之一, 因此必须在功能清单文件(AndroidManifest.xml)中进行注册,注册方式为: * <activity android:name="com.example.shiyanlou.myapplication.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> */ public class MainActivity extends ActionBarActivity { /** * onCreate在Activity被创建时被调用,而且只调用一次,主要用来完成初始化工作 * 需要注意的是,此时的super.onCreate(savedInstanceState);不能省略,它用于保存恢复现场 */ * @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* * 将Activity到用户界面设定为R.layout.activity_main,即 * res/layout/activity_main.xml * 可在build/generated/source/r/debug/com../R.java下查看layout静态内部类中的activity_main的静态成员 * 对应的是res/layout/activity_main.xml*/ setContentView(R.layout.activity_main); } /** * 在用户单击手机上的菜单键时触发,用来弹出菜单 */ @Override public boolean onCreateOptionsMenu(Menu menu) { /* * MenuInflater getMenuInflater():得到菜单填充气对象 * MenuInflater.inflate();执行填充操作 * R.menu.main:将菜单界面定位到res/menu/main.xml * * R.menu.main:访问R.java中中的静态内部类menu中的静态成员main, * 对应的资源文件在res/menu/main.xml */ getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 4、HelloWorld 布局界面如图 文件路径: project视图下,app/src/main/res/layout/activity_main.xml 5、在androidstudio中查看运行结果是通过Android下的Logcat查看的,如下图
⑸ 已经安装了最新版的jdk7.1 update 21,可是android studio还是无法启动
您好,我来为您解答:
在系统里添加环境变量,名称:"JDK_HOME"和值:"c:\Program Files\Java\jdk1.7.0_21\"即可解决
打开”Android Studio.app/Contents/Info.plist”文件,修改其中的JVMVersion项值为1.7*(原来是1.6*),再次启动,问题解决!
如果我的回答没能帮助您,请继续追问。
⑹ Android studio新建项目后出现“method
你的build.gradle中,compileSdkVersion指定了使用android-21,即api level21(android L)来进行编译,但是在sdk目录中,没有包含该版本的sdk,所以报错了,要么修改build.gradle文件,将编译所使用的sdk版本指定为你目录下存在的某个版本,或者...
⑺ Android Studio有什么奇技淫巧
1. 书签(Bookmarks)
描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处。
调用:Menu → Navigate → Bookmarks
快捷键:
添加/移除书签:F3(OS X) 、F11(Windows/Linux);
添加/移除书签(带标记):Alt + F3(OS X)、Ctrl + F11(Windows/Linux);
显示全部书签:Cmd + F3(OS X) 、Shift + F11(Windows/Linux),显示所有的书签列表,并且是可以搜索的。
上一个/下一个书签:无,可以在设置中设置快捷键。
更多:当你为某个书签指定了标记,你可以使用快捷键 Ctrl + 标记 来快速跳转到标记处,比如输入Ctrl + 1,跳到标记为1的书签处。
2. 折叠/展开代码块(Collapse Expand Code Block)
描述:该操作提供一种方法,让你隐藏你不关心的部分代码,以一种较为简洁的格式显示关键代码。一个有意思的用法是隐藏匿名内部类的代码,让其看起来像一个Lambda表达式。
快捷键:Cmd + “+”/”-“(OS X)、Ctrl + Shift + “+”/”-“(Windows/Linux);
更多:可以在Settig → Editor → General → Code Folding 中设置折叠规则。
3. 与分支比对(Compare With Branch (Git))
描述:假如你的项目是使用git来管理的,你可以将当前文件或者文件夹与其他的分支进行比对。比较有用的是可以让你了解到你与主分支有多少差别。
调用:Menu → VCS → Git → Compare With Branch
4. 与剪切板比对(Compare With Clipboard)
描述:将当前选中的部分与剪切板上的内容进行比对。
调用:右键选中的部分,在右键菜单中选择“Compare With Clipboard”。
5. 上下文信息(Context Info)
描述:当前作用域定义超过滚动区域,执行该操作将显示所在的上下文信息,通常它显示的是类名或者内部类类名或者当前所在的方法名。该操作在xml文件中同样适用。
调用:Menu → View → Context Info
快捷键:Alt + Q (Windows/Linux)
更多:个人认为,这个功能更好的用法是快速查看当前类继承的父类或者实现的接口。
6. 查找操作(Find Action)
描述:输入某个操作的名称,快速查找,对于没有快捷键的部分操作这是一个很有用的技巧。
快捷键:Cmd +Shift + A(OS X)、Ctrl + Shift + A(Windows/Linux);
更多:当某个操作是有快捷键的,会显示在旁边。
7. 查找补全(Find Complection)
描述:当你在一个文件中进行查找时,使用自动补全快捷键可以给出在当前文件中出现的建议单词;
快捷键:Cmd + F(OS X),Ctrl + F(Windows/Linux),输入一些字符,然后使用自动补全;
8. 隐藏所有面板(Hide All Panels)
描述:切换编辑器铺满整个程序界面,隐藏其他的面板。再次执行该操作,将会回到隐藏前的状态。
调用:Menu → Window → Active Tool Window → Hide All Windows;
快捷键:Cmd +Shift + F12(OS X)、Ctrl + Shift + F12(Windows/Linux);
9. 高亮一切(Hightlight All the Things)
描述:该操作将会高亮某个字符在当前文件中所有出现的地方。这不仅仅是简单的匹配,实际上它会分析当前的作用域,只高亮相关的部分。
调用:Menu → Edit → Find → Highlight Usages in File;
定位到上一处/下一处:Menu → Edit → Find → Find Next/Previous;
快捷键:相关快捷键请在菜单中查看;
更多:
如果高亮一个方法的return或throw语句,将会高亮这个方法的所有出口/结束点;
如果高亮某个类定义处的extend或implements语句,将会高亮继承的或实现的方法;
高亮一个import语句也会高亮使用到的地方;
按下Esc可以退出高亮模式;
10. 回到上一个工具窗口(Jump to Last Tool Window)
描述:有时候你会从某个工具窗口跳到编辑器里面,然后又需要重新回到刚才操作的那个工具窗,比如你查找使用情况的时,使用该操作可以在不使用鼠标的情况下跳转到之前的工具窗口。
快捷键:F12;
11. 上一个编辑位置(Last Edit Location)
描述:该操作将使得你导航到上一处你改动过的地方,这与点击工具栏上的返回箭头回到上一个定位位置是不一样的,该操作将会返回到上一个编辑的位置。
快捷键: Cmd + Shift + Delete(OS X)、Ctrl + Shift + Backspace(Windows/Linux);
12. 在方法和内部类之间跳转(Move Between Methods and Inner Classes)
描述:该操作让光标在当前文件的方法或内部类的名字间跳转。
调用:Navigate → Next Method/Previous Method;
快捷键:Ctrl + Up/Down(OS X)、Alt + Up/Down(Windows/Linux);
13. 定位到嵌套文件(Navigate to Nested File)
描述:有时你有一堆存放在不同目录下的同名文件,例如不同模块下的AndroidManifest.xml文件,当你想定位到其中的一个文件,你会得到一堆搜索结果,你还得辨认哪个才是你需要的。通过在检索框中输入部分路径的前缀,并添加斜杠号,你就可以在第一次尝试的时候就找到正确的那个。
快捷键:Cmd + O(OS X)、Ctrl + N(Windows/Linux);
14. 定位到父类(Navigate to parent)
描述:如果光标是在一个继承父类重写的方法里,这个操作将定位到父类实现的地方。如果光标是在类名上,则定位到父类类名。
Menu → Navigate → Super Class/Method
快捷键:Cmd + U(OS X)、Ctrl + U(Windows/Linux);
15. 根据编号打开面板(Open a Panel by Its Number)
描述:你可能已经注意到某些面板的名称左边有一个数字,这里有个快捷操作可以打开它们。如果你没看到面板的名称,请点击IDE的左下角的切换按钮。
快捷键:Cmd + 数字(OS X)、Alt + 数字(Windows/Linux);
16. 在外部打开文件(Open File Externally)
描述:通过这个快捷键,简单地点击Tab,就可以打开当前文件所在的位置或者该文件的任意上层路径。
快捷键:Cmd + 单击Tab(OS X)、Ctrl + 点击Tab(Windows/Linux);
17. 参数信息(Parameter Info)
描述:这个操作将显示和你在方法声明处写一样的参数列表,当你想看某个存在的方法的参数,这是一个很有用的操作。光标下的参数显示为黄色,如果没有参数显示黄色,意味着你的方法调用是无效的,很可能是某个参数分配不对。(例如一个浮点数赋值给了整型参数)。如果你正在写一个方法调用,突然离开编辑的地方,再返回的时候,输入一个逗号,就可以重新触发参数信息。
快捷键:Cmd + P(OS X)、Ctrl + U(Windows/Linux);
18. 快速查看定义(Quick Definition Lookup)
描述:你曾经是否想查看一个方法或者类的具体实现,但是不想离开当前界面? 该操作可以帮你搞定。
快捷键:Alt + Space / Cmd + Y(OS X)、Ctrl + Shift + I(Windows/Linux)
19. 最近修改的文件(Recently Changed Files)
描述:该操作类似于“最近访问(Recents)”弹窗,会显示最近本地修改过的文件列表,根据修改时间排列。可以输入字符来过滤列表结果。
快捷键:Cmd + Shift + E(OS X)、Ctrl + Shift + E(Windows/Linux)
20. 最近访问(Recents)
描述:该操作可以得到一个最近访问文件的可搜索的列表。
快捷键:Cmd + E(OS X)、Ctrl + E(Windows/Linux)
21. 相关文件(Related File)
描述:该操作有助于在布局文件和Activity/Fragment之间轻松跳转。这也是一个快捷操作,在类名/布局顶端的左侧。
快捷键:Ctrl + Cmd + Up(OS X)、Ctrl + Alt + Home(Windows/Linux)
22. 返回到编辑器(Return to the Editor)
描述:一大堆快捷键操作会把你从编辑器带走(type hierarchy, find usages, 等等)。如果你想返回到编辑器,你有两个选项:
Esc:该操作仅仅把光标移回编辑器。
Shift + Esc:该操作会关闭当前面板,然后把光标移回到编辑器。
快捷键:
返回但保留打开的面板:Esc
关闭面板并返回:Shift + Esc
23. Select In
描述:拿着当前文件然后问你在哪里选中该文件。恕我直言,最有用的就是在项目结构或者资源管理器中打开该文件。每一个操作都有数字或者字母作为前缀,可以通过这个前缀来快速跳转。通常,我会 Alt + F1 然后 回车(Enter) 来打开项目视图,然后 再用 Alt + F1 在OS X的Finder里找到文件。你可以在文件中或者直接在项目视图里使用该操作。
快捷键:Alt + F1;
24. 扩大选择(Shrink Selection)
描述:该操作会在上下文逐渐扩大当前选择范围。例如,它会先选中当前变量,再选中当前语句,然后选中整个方法,等等。
快捷键:Cmd + F2(OS X)、Ctrl + F2(Windows、Linux)
25. Sublime Text式的多处选择(Sublime Text Multi Selection)
描述:这个功能超级赞!该操作会识别当前选中字符串,选择下一个同样的字符串,并且添加一个光标。这意味着你可以在同一个文件里拥有多个光标,你可以同时在所有光标处输入任何东西。
快捷键:Ctrl + G(OS X)、Alt + J(Windows、Linux)
26. 文件结构弹窗(The File Structure Popup)
描述:该操作可以展示当前类的大纲,并且可以快速跳转。你还可以通过键盘输入来过滤结果。这是一种很高效的方法来跳转到指定方法。
更多:
你在输入字符的时候可以用驼峰风格来过滤选项。比如输入”oCr”会找到”onCreate”
你可以通过勾选多选框来决定是否显示匿名类。这在某些情况下很有用,比如你想直接跳转到一个OnClickListener的onClick方法。
快捷键:Cmd + F12(OS X)、Ctrl + F12(Windows/Linux)
调用:Menu → Navigate → File Structure
27. 切换器(The Switcher)
描述:该快捷键基本上就是IDE的alt+tab/cmd+tab命令。你可以用它在导航tab或者面板切换。一旦打开这个窗口,只要一直按着ctrl键,你可以通过对应的数字或者字母快捷键快速选择。你也可以通过backspace键来关闭一个已选中的tab或者面板。
快捷键:Ctrl + Tab
28. 版本控制操作弹窗(VCS Operations Popup)
描述:该操作会给你显示最常用的版本控制操作。如果你的项目没有用git等版本控制软件进行管理,它至少会给你提供一个由IDE维护的本地历史记录。
快捷键:Ctrl + V(OS X)、Alt + `(Windows/Linux)
编码技巧
29. 列选择/块选择(Column Selection)
描述:正常选择时,当你向下选择时,会直接将当前行到行尾都选中,而块选择模式下,则是根据鼠标选中的矩形区域来选择。
调用:按住Alt,然后拖动鼠标选择。
开启/关闭块选择:Menu → Edit → Column Selection Mode
快捷键:切换块选择模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);
30. 语句补全(Complete Statement)
描述:这个方法将会生成缺失的代码来补全语句,常用的使用场景如下:
在行末添加一个分号,即使光标不在行末;
为if、while、for 语句生成圆括号和大括号;
方法声明后,添加大括号;
调用:Menu → Edit → Compelete Current Statement
快捷键:Cmd + Shift + Enter(OS X)、Ctrl + Shift + Enter(Windows/Linux);
更多:如果一个语句已经补全,当你执行该操作时,则会直接跳到下一行,即使光标不在当前行的行末。
31. 删除行(Delete Line)
描述:如果没选中,则删除光标所在行,如果选中,则会删除选中所在的所有行。
快捷键:Cmd + Delete(OS X)、Ctrl + Y(Windows/Linux)
32. 行复制(Duplicate Line)
描述:复制当前行,并粘贴到下一行,这个操作不会影响剪贴板的内容。这个命令配合移动行快捷键非常有用。
快捷键:Cmd + D(OS X)、Ctrl + D(Windows/Linux)
33. 编写正则表达式(Edit Regex)
描述:使用Java编写正则表达式是一件很困难的事,主要原因是:
你必须得避开反斜杠;
说实话,正则很难;
看第二条。
IDE能帮我们干点啥呢?当然是一个舒服的界面来编写和测试正则啦~ - 快捷键:Alt + Enter → check regexp
34. 使用Enter和Tab进行代码补全的差别(Enter vs Tab for Code Completion)
描述:代码补全时,可以使用Enter或Tab来进行补全操作,但是两者是有差别的。
使用Enter时:从光标处插入补全的代码,对原来的代码不做任何操作。
使用Tab时:从光标处插入补全的代码,并删除后面的代码,直到遇到点号、圆括号、分号或空格为止。
35. 提取方法(Extract Method)
描述:提取一段代码块,生成一个新的方法。当你发现某个方法里面过于复杂,需要将某一段代码提取成单独的方法时,该技巧是很有用的。
调用:Menu → Refactor → Extract → Method
快捷键:Cmd + Alt + M(OS X)、Ctrl + Alt + M(Windows/Linux);
更多:在提取代码的对话框,你可以更改方法的修饰符和参数的变量名。
36. 提取参数(Extract Parameter)
描述:这是一个提取参数的快捷操作。当你觉得可以通过提取参数来优化某个方法的时候,这个技巧将很有用。该操作会将当前值作为一个方法的参数,将旧的值放到方法调用的地方,作为传进来的参数。
调用:Menu → Refactor → Extract → Parameter
快捷键:Cmd + Alt + P(OS X)、Ctrl + Alt + P(Windows/Linux);
更多:通过勾选“delegate”,可以保持旧的方法,重载生成一个新方法。
37. 提取变量(Extract Variable)
描述:这是一个提取变量的快捷操作。当你在没有写变量声明的直接写下值的时候,这是一个很方便生成变量声明的操作,同时还会给出一个建议的变量命名。
调用:Menu → Refactor → Extract → Variable
快捷键:Cmd + Alt + V(OS X)、Ctrl + Alt + V(Windows/Linux);
更多:当你需要改变变量声明的类型,例如使用 List 替代 ArrayList,可以按下Shift + Tab,就会显示所有可用的变量类型。
38. 内置(Inline)
描述:当你开始对提取操作有点兴奋的时候,突然觉得东西太多了,怎么办呢?这是一个和提取相反的操作。该操作对方法、字段、参数和变量均有效。
调用:Menu → Refactor → Inline
快捷键:Cmd + Alt + N(OS X)、Ctrl + Alt + N(Windows/Linux);
39. 合并行和文本(Join Lines and Literals)
描述:这个操作比起在行末使劲按删除键爽多了!该操作遵守格式化规则,同时:
合并两行注释,同时移除多余的//;
合并多行字符串,移除+和双引号;
合并字段的声明和初始化赋值;
快捷键:Ctrl + Shift + J;
40. 动态模板(Live Templates)
描述:动态模板是一种快速插入代码片段的方法,使用动态模板比较有意思的是你可以使用合适的默认值将模板参数化,当你插入代码片段时,这可以指导你完成参数。
更多:如果你知道模板的缩写,就可以不必使用快捷键,只需要键入缩写并使用Tab键补全即可。
快捷键:Cmd + J(OS X)、Ctrl + J(Windows/Linux);
41. 上下移动行(Move Lines Up Down)
描述:不需要复制粘贴就可以上下移动行了。
快捷键:Alt + Shift + Up/Down;
42. 移动方法(Move Methods)
描述:这个操作和移动行操作很类似,不过该操作是应用于整个方法的,在不需要复制、粘贴的情况下,就可以将整个方法块移动到另一个方法的前面或后面。该操作的实际叫做“移动语句”,这意味着你可以移动任何类型的语句,你可以方便地调整字段或内部类的顺序。
快捷键:Cmd + Alt + Up/Down(OS X)、Ctrl + Shift + Up/Down(Windows/Linux);
43. 取反补全(Negation Completion)
描述:有时你自动补全一个布尔值,然后回到该值的前面添加一个感叹号来完成取反操作,现在通过使用输入!代替enter完成补全操作,就可以跳过这些繁琐的操作了。
快捷键:代码补全的时候,按下!即可(有时需要上下键选中候选项);
44. 后缀补全(Postfix Completion)
描述:你可以认为该操作是一种代码补全,它会在点号之前生成代码,而不是在点号之后。实际上你调用这个操作和正常的代码补全操作一样:在一个表达式之后输入点号。
例如对一个列表进行遍历,你可以输入myList.for,然后按下Tab键,就会自动生成for循环代码。
调用: 你可以在某个表达式后面输入点号,出现一个候选列表,在常规的代码补全提示就可以看到一系列后缀补全关键字,同样的,你也可以在Editor → Postfix Completion中看到一系列后缀补全关键字。
常用的有后缀补全关键字有:
.for (补全foreach语句)
.format (使用String.format()包裹一个字符串)
.cast (使用类型转化包裹一个表达式)
45. 重构(Refactor This)
描述:该操作可以显示所有对当前选中项可行的重构方法。这个列表可以用数字序号快速选择。
快捷键:Ctrl + T(OS X)、Ctrl + Alt + Shift + T(Windows/Linux)
46. 重命名(Rename)
描述:你可以通过该操作重命名变量、字段、方法、类、包。当然了,该操作会确保重命名对上下文有意义,不会无脑替换掉所有文件中的名字;
快捷键:Shift + F6
更多:如果你忘记了这个快捷键,你可以使用快速修复(Quick Fix)的快捷键,它通常包含重命名选项。
47. 分号/点 补全(Semicolon Dot Completion)
描述:代码补全这个功能太棒啦!我们大概都对以下这种情况很熟悉:开始输入点什么东西,接着从IDE得到一些建议的选项,然后通过Enter或者Tab来选择我们想要的补全代码。其实还有另外一种方法来选择补全的代码:我们可以输入一个点(.)或者一个分号(;)。这样就会完成补全,添加所选字符。这在结束一条语句补全或者快速链式调用方法的时候特别有用。
注意点:如果你要代码补全的方法需要参数,这些参数会被略过。
快捷键:Autocomplete + “.” 或者 “;”
48. 包裹代码(Surround With)
描述: 该操作可以用特定代码结构包裹住选中的代码块,通常是if语句,循环,try/catch语句或者runnable语句。 如果你没有选中任何东西,该操作会包裹当前一整行。
快捷键:Cmd + Alt + T(OS X)、Ctrl + Alt + T(Windows/Linux)
49. 移除包裹代码(Unwrap Remove)
描述:该操作会移除周围的代码,它可能是一条if语句,一个while循环,一个try/catch语句甚至是一个runnable语句。该操作恰恰和包裹代码(Surround With)相反。
快捷键:Cmd + Shift + Delete(OS X)、Ctrl + Shift + Delete(Windows/Linux)
调试技巧
50. 分析传入数据流(Analyze data flow to here)
描述:这个操作将会根据当前选中的变量、参数或者字段,分析出其传递到此处的路径。 当你进入某段陌生的代码,试图明白某个参数是怎么传递到此处的时候,这是一个非常有用的操作。
调用:Menu → Analyze → Analyze Data Flow to Here
快捷键:无,可以在设置中指定。
相反的操作:分析传出数据流(Analyze data flow from here),这个将会分析当前选中的变量往下传递的路径,直到结束。
51. 堆栈追踪分析(Analyze Stacktrace)
描述: 这个操作读取一份堆栈追踪信息,并且使它像logcat中那样可以点击。当你从bug报告中或者终端复制了一份堆栈追踪,使用该操作可以很方便地调试。
调用:Menu → Analyze → Analyze Stacktrace
快捷键:无,可以在设置中指定。
更多:通过使用“ProGuard Unscramble Plugin”插件,也可以分析混淆过的堆栈追踪。
52. 关联调试程序(Attach Debugger)
描述:随时启动调试程序,即使你没有以调试模式启动你的应用。这是一个很方便的操作,因为你不必为了调试程序而以调试模式重新部署你的应用。当别人正在测试应用,突然遇到一个bug而将设备交给你时,你也可以很快地进入调试模式。
调用:点击工具栏图标或者Menu → Build → Attach to Android Process
快捷键:无,可以在设置中指定,或者点击工具栏对应的图标。
53. 条件断点(Conditional Breakpoints)
描述:简单说,就是当设定的条件满足时,才会触发断点。你可以基于当前范围输入一个java布尔表达式,并且条件输入框内是支持代码补全的。
调用:右键需要填写表达式的断点,然后输入布尔表达式。
54. 禁用断点(Disable Breakpoints)
这个操作将使得断点。当你有一个设置过复杂条件的断点或者是日志断点,当前不需要,但是下次又不用重新创建,该操作是很方便的。
调用:按住Alt,然后单击断点即可。
55. 计算表达式(Evaluate Expression)
描述:这个操作可以用来查看变量的内容并且计算几乎任何有效的java表达式。需要注意的是,如果你修改了变量的状态,这个状态在你恢复代码执行后依然会保留。
快捷键:处在断点状态时,光标放在变量处,按Alt + F8,即可显示计算表达式对话框。
⑻ android新手,使用android studio新建项目,values21出现错误,怎么解决。。。麻烦各路大神
[ Answer ] : In your build.gradle (Mole gradle) file you should update the values to the following:
android { compileSdkVersion 23 buildToolsVersion '23.0.0'
⑼ 运行android studio一直是错误,请问这是什么问题怎么解决
首先你看下你的adt-bundle-windows-x86_64/sdk/build-tools目录有哪些支持的编译版本 比如我通过sdk manager更新后有如下这些 这里的就决定了你的android工程要使用的编译环境【 buildToolsVersion】
2. adt-bundle-windows-x86_64/sdk/platforms目录下看一下 这里就是编译时候使用的android api的sdk版本,数字对应系统版本, 21就是android 5.0系统 3.修改工程下的build.gradle为合适的版本 从上面可以看到,我有23.0.2, 所以buildToolsVersion 设置成23.0.2, platforms下支持21。 compileSdkVersion 21 buildToolsVersion '23.0.2' 意思是使用23.0.2的编译工具, 使用android 5.0 sdk来构建自己的工程。
⑽ androidstudio怎么进行方法重写的快捷键
Android Studio常用快捷键 1. Ctrl+D: 集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面 粘贴出来,如果没有选中的部分,就复制光标所在的行,并在此行的下面粘贴出来。 2. Ctrl+空格: 输入代码时按此组合键会列出与之相匹配的类、方法名、成员变量等,起智能提示的作用。 在编辑XML文件一样有用。 3. Ctrl+向下箭头 或Ctrl+向上箭头:在有自动匹配下拉列表时,此快捷键会自动关掉下拉列表, 光标移动到下/上一行。 4. 自动匹配下拉列表的排列方式的切换:在自动匹配下拉列表的右下角有个“π”图标,点击后可选 是按:实用性、字母两种排列方式。 5. Ctrl+斜杠 、Ctrl+shift+斜杠: Ctrl+斜杠:注释或取消注释当前行或选中的代码块,以双斜杠的方式即“//” Ctrl+shift+斜杠:注释或取消注释选中的代码块,以“/*……*/”方式注释, 6. Ctrl+shift+Enter:自动匹配相对应的语法结构,比如if,do-while,try-catch等结构。 7. Ctrl+F:搜索 8. Ctrl+句点:在自动匹配下拉列表中,选中第一个item 9. 感叹号:在自动匹配下拉列表中,上下键选中一个返回结果为boolean的item,按感叹号会自动取反: 10. Ctrl+Enter :在自动匹配下拉列表中,在没有选中的item时,默认选中第一个item。 11. Ctrl+shift+A:快速查找android studio中的菜单。 12. Ctrl+N:快速查找类名、文件 13. Ctrl+B:直接跳转到类、方法、成员变量定义的地方。与Ctrl+鼠标左键效果一样 14. Ctrl+Alt+B:查询有哪些类实现了光标所在的接口。 15. Ctrl+Alt+shift+I:检测代码,比如检测一些定义了,但没有使用过的变量或方法。检测的目的是为了提高代码效率。 16.Ctrl+Alt+shift+N :快速打开输入的方法或变量。 17.Ctrl+shift+F7:以高亮的形式标志处一些相关的东西,这里主要由三种情况:1.光标的位置在implement时, 会把类实现了接口的方法名给标志出来;2.光标的位置在return时,会标志出方法的所有退出的地方; 3.光标在try或者throws关键字处时,会标志出会产生异常的语句。 18.shift+鼠标滚动:可实现编辑界面的横向滚动。 19.Ctrl+Alt+V:调用方法时传入的参数是比较复杂的表达式时,可用此组合键重构变量,以简化代码的复杂度。 在组合键之前要先选中表达式。 20. Ctrl+D:比较两个jar文件,在同一工程中,选中两个jar文件,按此组合键 21.Ctrl+O:子类想重写父类的方法时,按此组合键可显示所有父类的方法。接口对应的组合键时Ctrl+I。 22.Ctrl+shift+I:快速查看方法体,想查看一个方法是如何实现的,可把光标移至方法处,按此组合键。 23.Ctrl+Q:把光标移至方法处,按此组合键可快速查看方法的说明文档。 24.Ctrl+~:切换编辑界面的风格,快捷键设计 25.Alt+shift+C:查看工程的最近修改。 26.Ctrl+E:快速查看最近打开打开过的文件。 27.shift+F6:可对类、方法、变量进行重命名,使用的地方会自动更新名字。 28.Alt+F1:快速打开project view、structure view 等查看相应的元素。 29.Ctrl+Alt+F7:查看一个类、方法、成员变量在整个工程中的使用情况。 30.Ctrl+shift+空格:在赋值或者是在方法中要传入参数时,列出类型匹配的方法名、成员变量名。 31.Ctrl+Alt+T:选中一块代码,按此组合键,可快速添加if 、for、try/catch等语句。 32.Ctrl+Tab:打开界面切换窗口,保持按住Ctrl键,选中相应的要打开的窗口。 33.Ctrl+W:选中光标所在的所在的单词(一个成员变量或者是一个方法名),多按一次会选中所在的语句, 再多按一次会选中所在的代码块。。。依次类推,每增加一次会扩大一级选中的范围。