2016-03-16 16:46:22 ccnanxi 阅读数 341
  • Android开发工具之道

    Android开发工具实战视频教程:1、开发借助IDE工具,开发者可以快速编写代码,掌握IDE的使用技巧,对提高编码效率、代码质量都有很大的帮助,同时,利用IDE的重构功能,可以对项目进行持续优化和改进。2、性能优化 常见性能检测场景中用到的检测工具 如何使用工具去分析、解决这些性能问题

    3926 人正在学习 去看看 CSDN讲师
    学习Android开发,首先,需要下载几个软件工具,也就是Android SDK、Eclipse集成开发环境(IDE)和Eclipse所用的Android插件。还有其他很多工具可以用来创建Android开发应用,当前这种设置争议最少,并且能在最短的时间内让系统运转起来。

 1、Android SDK

 访问Android开发者网站。随着在这个平台上进行开发,会越来越熟悉这些页面。上了网站之后,就找到标有SDK的区域,下载所提供的那些文件。在Windows系统上,最好用系统提供的安装程序。对于Mac和Linux用户,会得到一个ZIP压缩文件。选好合适的文件开始下载,下载完成后继续其他操作。

 2、Eclipse

 对于3.5版本以上的Eclipse,Google推荐使用IDE经典版。找到Eclipse Classic。确保系统是合适的版本:32位或64位。现在做好准备,等着安装程序结束。除非用来连接网络的是嘶嘶响的电话线,否则只要几分钟就可以完成安装。

 3、Java

 需要在系统上下载、安装Java(如果你有过开发经验,系统上可能已经安装了Java)。如果读者是从零开始学Android开发的情况,可以参考扣丁学堂Android开发教程视频对应章节学习。

 作为市场霸主的Android系统软件未来的发展前景一片利好。对Android开发有兴趣的读者可以登陆扣丁学堂官网通过免费注册观看Android开发培训视频教程讲座,适用于新手从零开始学Android开发
2019-06-20 18:25:00 lyabc123456 阅读数 504
  • Android开发工具之道

    Android开发工具实战视频教程:1、开发借助IDE工具,开发者可以快速编写代码,掌握IDE的使用技巧,对提高编码效率、代码质量都有很大的帮助,同时,利用IDE的重构功能,可以对项目进行持续优化和改进。2、性能优化 常见性能检测场景中用到的检测工具 如何使用工具去分析、解决这些性能问题

    3926 人正在学习 去看看 CSDN讲师

一些提高开发效率的工具&方法

1. 使用快捷键提高操作效率

下面的有些快捷键是经过我修改的,如果你不知道AS原生的快捷键是什么或者忘记了快捷键可以到Settings->Keymap下面搜索查看,使用熟练了之后就会记住了。当然你也可以在Settings->Keymap中修改自己觉得顺手的快捷键组合。

快捷键 作用 对应菜单路径
Ctrl + F 当前文件查找内容 Edit-Find-Replace
Ctrl + H 全局查找内容 Edit-Find-Find in Path
Double Shift 全局搜索,快速定位想打开的文件
Ctrl + E 显示最近编辑过的文件
Alt + Enter 显示快捷选项 (快速修复错误,导入包、提取资源、Implements等等) kemap-Other-Show Intention Options
Ctrl + O 快速查找/显示当前类中的方法和成员 Navigate-File Structure
Alt + Shift + M 重构(提取)选中的代码为新方法 Refactor-Extract-Method
Ctrl + Shift + F 格式化代码 Code-Reformat Code
Alt + Shift + P 实现方法 Code-Implement Methods
Ctrl + Windows 覆写方法 Code-Override Methods
Alt + Insert 生成getter、setter、构造函数、toString以及很多选项 Code-Generate
Ctrl + Shift + R 类似Double Shift,快速定位想打开的文件 Navigate-File
Ctrl + G 查询方法被哪些类调用了(这个最快的方式其实是在方法上按住Ctrl然后单击鼠标左键) Edit-Find-Find Usages
Ctrl + D 删除光标所在行代码(可选中多行删除) Editor Actions-Delete Line
Ctrl + X 剪切光标所在行代码 Edit-Cut
Alt + Shift + R 修改变量名、文件名、资源名(需要先选中,引用的地方也会被一同修改掉) Refactor-Rename
Ctrl+Alt+C 抽取常量(魔法值) Refactor-Extract-Constant
Ctrl + Shift + X/Y 大小写转换 Editor Actions-Toggle Case
Alt + / 提示代码、代码补全 Other-Class Name Completion
Ctrl + / 注释当行,反注释再按一次即可 Code-Comment with Line Comment
Ctrl+ Shift + / 生成块注释 Code-Comment with Block Comment
Ctrl + Shift + 小键盘 / 折叠当前类所有代码 Code-Folding-Collapse All
Ctrl + 小键盘 * 展开当前类所有代码 Code-Folding-Expand All
Ctrl + 减号 收缩单个方法体代码 Code-Folding-Collapse
Ctrl + 加号 展开单个方法体代码 Code-Folding-Expand
Shift + I 收缩选中的代码,再按一次展开 Code-Folding-Fold Selection/Remove region
F4 查看类继承关系 Navigate-Type Hierarchy
Ctrl + Alt + S 打开Settings界面 File-Settings
Ctrl + Alt + Shift + S 打开Project Structure界面 File-Project Structure
Ctrl + B 直接执行Build Build-Compile Dirty
Esc 关闭其他窗口, 返回编辑器
Ctrl + L 跳转到指定行(可用来定位bug行) Navigate-Line/Column
Alt + C 检查代码 Other-Inspect Code with Editor Settings

如果你发现快捷键不起作用,多半是跟其他软件的快捷键冲突了,如搜狗输入法,浏览器等,可以尝试关掉其他软件的快捷键。

2. 使用AS热键/模块提高输入效率

学会使用AS提供的一些默认的热键模板:

logt ----> 在类中快速定义TAG变量
logi ----> log打印快速补全Log.i(TAG, "");
logd ----> log打印快速补全Log.d(TAG, "");
loge ----> log打印快速补全Log.e(TAG, "");

fbc ----> findViewById快速生成

const ----> 定义int常量快速生成

key ----> 定义字符串常量快速生成

psf ----> 快速生成public static final 

fori ----> fori循环快速生成

ifn ----> 快速生成if (a == null)

inn ----> 快速生成if (a != null)

gone ----> 快速生成.setVisibility(View.GONE);

rouiT ----> 快速生成runOnUiThread代码 在子线程中切换到主线程

Sfmt ----> 快速生成String.format("", );

.notnull ----> 快速生成if (a == null)

.null ----> 快速生成if (a != null)

.var ----> new XXX().var 快速生成局部对象变量

.field ----> new XXX().var 快速生成全局对象变量

.for ----> 快速生成foreach循环

.fori ----> 快速生成正序遍历

.forr ----> 快速生成逆序遍历

.if ----> 快速生成if语句 "bb".equals(a).if

.return ----> 快速生成return语句

.cast ----> 快速生成强制转换语句 (() a)

.try ----> 快速生成try-catch语句 Integer.parseInt("111").try

.format ----> 快速生成format语句 String.format(a, )

ViewConstructors  ----> 快速实现自定义View的三个构造方法

学会使用自定义的模板热键:
设置路径:Settings--> Editor-->Live Templates

先创建自定义的Group, 点击右侧+号,选择第二个:

然后选中组,点击+号,选择第一个创建模板:

设置ok之后就可以在代码或xml文件中使用自己设置的热键来生成自己想要的模板代码块了。

3. 学会使用adb命令

adb抓取log: adb logcat > ./log1.txt

adb拉取手机文件:adb pull ./sdcard/tq_storage/cache/logs/ ./crashLogs/

adb push文件到手机:adb push F:\logs /sdcard/youku

adb截屏:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png ./

adb安装apk: adb install apk的路径
adb卸载apk: adb uninstall packagename

更多adb命令请参考:adb命令

4. 使用阿里规约插件扫描代码bug


5. 使用TODO, FIX ME标记未完成、故障代码

直接在编辑器输入todo、fixme即可显示。

6. 使用Beyond Compare比较文件内容

直接选择两个文件右键进行比较

7. 使用Gson在线格式化工具查看接口返回的数据

https://www.bejson.com/jsonviewernew/

8. 使用AS插件GsonFormat自动生成gson对应的java bean类

直接复制json字符串到剪贴板,然后在一个空的类中Alt+Insert

9. 使用AS插件String Manipulation转换变量命名的风格

String Manipulation可以使变量在以下风格之间转换:

snake_case <--> camelCase (下划线命名和驼峰命名互转)

hypen-case <--> camelCase (横线命名和驼峰命名互转)

SREAMING_SNAKE_CASE <--> camelCase (大写下划线命名和驼峰命名互转)

hypen-case <--> snake_case (横线命名和下划线命名互转)

dot.case <--> camelCase (点分隔的命名和驼峰命名互转)

words <--> camelCase (单词和驼峰命名互转)

lowercase <--> camelCase (全小写命名和驼峰命名互转)

PascalCase <--> camelCase (大驼峰和小驼峰命名互转)

这样可以是我们的代码能很方便的更加遵循代码命名规范

10. 使用SmartFindViewById或GenerateFindViewById插件自动生成查找控件代码

SmartFindViewById效果:

GenerateFindViewById效果:

GenerateFindViewById的快捷键Ctrl+Alt+E

11. 使用Android Code Generator插件根据布局文件快速生成对应的Activity,Fragment等

布局文件中右键选择Generate Android Code

12. Android Parcelable code generator快速实现Parcelable序列化

快捷键Alt+Insert 选择Generate快速实现Parcelable方式的序列化:

13. MarkDown Navigator在AS中查看编辑MarkDown文件

14. Show in Explorer打开文件对应的目录

15. 使用.gitignore文件忽略不需要提交Git的Android bUild文件


注意:.gitignore文件要先提交才会起作用,项目根目录下有一个.gitignore文件,每个module下面也有一个.gitignore文件。

16. 使用AS Device File Explorer查看手机文件

17. tinyjpg压缩图片文件

https://tinyjpg.com/
这个网站可以保证在图片清晰度不失真的情况下最大比例的压缩图片体积

18. 阿里巴巴矢量图标

https://www.iconfont.cn/
当你需要一个图标而又没有人提供给你的时候

19. Mark Man标注设计稿

http://www.getmarkman.com/
主要是UI设计使用,开发可以用来测量一些宽高值、颜色值等

20. Cipher tools AS加密插件

21. AS编辑器代码颜色风格设置

http://color-themes.com/?view=index
可以自取,选择自己喜欢的颜色下载jar导入AS即可。
当然你也可以在Settings->Color Scheme中设置自己喜欢的代码颜色:



可以设置java、xml、控制台、Logcat输出等颜色。

22. Android开源库搜索神器

http://www.see-source.com/androidwidget/list.html
https://android-arsenal.com/
https://github.com/

23. Android系统源码在线查看

https://www.androidos.net.cn/sourcecode

24. 在线Java编译器

https://c.runoob.com/compile/10
https://www.tutorialspoint.com/compile_java_online.php
当你想验证一个Java问题而又不想打开电脑上的任何编译器的时候

25. 一些免费开源API接口

https://blog.csdn.net/c__chao/article/details/78573737
https://blog.csdn.net/huanzhongying/article/details/79607910
当你想测试网络请求而没有接口的时候

26. 在线地图经纬度查询

http://www.gpsspg.com/maps.htm
支持同时显示同一位置的不同地图厂商的经纬度结果值

2017-06-23 15:20:50 linshuhe1 阅读数 17025
  • Android开发工具之道

    Android开发工具实战视频教程:1、开发借助IDE工具,开发者可以快速编写代码,掌握IDE的使用技巧,对提高编码效率、代码质量都有很大的帮助,同时,利用IDE的重构功能,可以对项目进行持续优化和改进。2、性能优化 常见性能检测场景中用到的检测工具 如何使用工具去分析、解决这些性能问题

    3926 人正在学习 去看看 CSDN讲师

引言:

通常在使用Eclipse进行Android应用开发的时候,我们可以使用Eclipse自带的工具来完成调试和查看输出日志的操作,但是假如在当前电脑并没有配置适用于Android开发的Eclipse版本的情况下,想要查看Android设备运行应用或者游戏时的实时输出日志,可以直接借助Android调试工具 adb 来完成。

adb简介:

adb 全称是 Android Debug Bridge,即安卓调试工具。

adb配置:

与其说是安装 adb ,更准确的描述应该是解压和配置。先下载 adb工具包,然后加压得到一个 adb 文件夹,包含文件如下:

| adb
| --- adb.exe
| --- AdbWinApi.dll
| --- AdbWinUsbApi.dll
| --- fastboot.exe

为了可以全局使用 adb 工具,我们可以用两种方式来实现配置操作:

方法一:配置环境变量

直接将 adb 文件夹的目录添加到系统环境变量 Path 中,操作步骤:我的电脑 -> 属性 -> 高级系统设置 -> 环境变量

方法二:复制到系统文件目录

adb 工具包的四个文件都复制到 C:\Windows\System32 目录里。

  • 报错:
    这是网上推荐的方式之一,但是我尝试之后发现并不能正常使用,在cmd窗口输入 adb 还报错 “无法启动此程序,因为计算机中丢失 AdbWinApi.dll。尝试重新安装该程序解决此问题。”

  • 解决:
    原来,这个配置过程跟系统的位数有关,假如系统是32位的,则将四个文件都复制到 C:\Windows\System32 目录里即可。但是,假如使用的Windows系统是64位的,则需要将其中的 AdbWinApi.dll 文件复制到 C:\Windows\SysWOW64 里,这样就一切正常了。

常用操作:

1.查询版本:

打开cmd窗口,定位到 adb.exe 所在的文件目录,然后输入版号查询指令:

shell
E:\java web\tools\adb>adb -v
Android Debug Bridge version 1.0.26

2.启动和关闭:

  • 启动:

    adb start-server
  • 关闭:

    adb kill-server

3.查询连接设备列表:

注意使用前先确保手机的USB调试功能是打开的状态。设置 -> 开发者选项 -> USB调试(勾选)

在cmd窗口输入 adb devices 查询设备列表:

 C:\Users\Administrator>adb devices
List of devices attached
622123171690109874      device
  • 问题:
    假如在设备管理器中看到设备已经连接上:计算机管理 -> 设备管理 -> Android Phone -> Android Composite ADB Interface -> 右键属性 -> 详细信息

    但是,adb 查询结果发现列表却是空的:

    C:\Users\Administrator>adb devices
    adb server is out of date.  killing...
    * daemon started successfully *
    List of devices attached
  • 解决:
    打开 C:\Users\Administrator\.android 目录,修改或新建一个 adb_usb.ini 文件,填写内容为:0x[VID]

    这里[VID] 其实是硬件的 id,对应的其实就是上面计算机设备管理中的 USB\VID_2C73&PID_7029&REV_FFFF&MI_01VID_ 后面紧跟着的4位数字,这里是 “2C73”,故最终 adb_usb.ini 文件的内容是:0x2C73


然而,又出现了如下错误:
C:\Users\Administrator>adb devices
List of devices attached
622123171690109874      offline
网上资料说是由于:谷歌在 “Android 4.2.2“ 以后加入了验证,需要配合使用最新的ADB工具。这里我重新下载了 “adb 1.0.32“ 再尝试查询设备列表即正常了:
F:\android-sdk\platform-tools>adb -v
Android Debug Bridge version 1.0.32

F:\android-sdk\platform-tools>adb devices
adb server is out of date.  killing...
* daemon started successfully *
List of devices attached
622123171690109874      device

下面步骤都是在查询设备指令运行正常的前提下进行的,否则无法正常使用。

3.打印日志:

命令 说明 备注
adb logcat 打印log /
adb logcat -c 清除手机的log buffer 有些手机权限控制, 不支持.
adb logcat -b 打印指定buffer的log信息 buffer有: main(主log区,默认), events(事件相关的log), radio(射频, telephony相关的log)
adb logcat -v 格式化输出log 常用的用adb logcat -v time显示时间
adb logcat -f 输出log到指定文件

4.安装/卸载 apk:

  • 安装:(安装apk时指定apk file路径)

    adb install (.apk的目录)
  • 卸载:(卸载apk时指定包名)

    adb uninstall (apk的包名(xx.xx.com))

通常直接有两种方式来查看 logcat 日志:

  • 实时cmd窗口输出:

    adb logcat
  • 写入到指定日志输出文件:

    adb logcat -d >logcat.txt

    会在当前目录下生成一个 logcat.txt 日志文件。

5.进入设备的 shell 界面:

adb shell

小结:

总说高级的程序员就要做到脱离UI界面的编程模式,所以像这样直接使用cmd窗口来操作使用类似 adb 这样工具,从而完成我们功能需求,是不是看起来有点厉害的感觉呢。

参考资料:

2016-10-13 13:58:29 qq_16247851 阅读数 264
  • Android开发工具之道

    Android开发工具实战视频教程:1、开发借助IDE工具,开发者可以快速编写代码,掌握IDE的使用技巧,对提高编码效率、代码质量都有很大的帮助,同时,利用IDE的重构功能,可以对项目进行持续优化和改进。2、性能优化 常见性能检测场景中用到的检测工具 如何使用工具去分析、解决这些性能问题

    3926 人正在学习 去看看 CSDN讲师
  • 验证是否是邮箱
   public static boolean isEmail(String email) {
        String emailRegex = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
        if (TextUtils.isEmpty(email))
            return false;
        else
            return email.matches(emailRegex);
    }
  • 验证是否为手机号码
 public static boolean isMobile(String mobiles) {

        String telRegex = "[1][358]\\d{9}";

        if (TextUtils.isEmpty(mobiles)){
             return false;
        } 
         return mobiles.matches(telRegex);
    }
  • 验证网络是否可以连接(包括移动数据和wifi)
public static boolean isNetCanConnect(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager)context
         .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager
                    .getActiveNetworkInfo();
            if (mNetworkInfo != null) {
                return mNetworkInfo.isAvailable();
            }
        }
        return false;
    }
  • 验证wifi是否可以连接
public static boolean isWifiCanConnect(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager)context                                  .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mWiFiNetworkInfo = mConnectivityManager
                    .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            if (mWiFiNetworkInfo != null) {
                return mWiFiNetworkInfo.isAvailable();
            }
        }
        return false;
    }
  • 判断当前程序是否在前台
 public static boolean isBackground(Context context) {
        ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> appProcesses = mActivityManager.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
            if (appProcess.processName.equals(context.getPackageName())) {
                if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
                    return true;//后台
                } else {
                    return false; //前台
                }
            }
        }
        return false;
    }
  • 获取屏幕高度
 public static int getScreenWidth(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.widthPixels;
    }
  • 获取屏幕宽度
  public static int getScreenHeight(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        wm.getDefaultDisplay().getMetrics(outMetrics);
        return outMetrics.heightPixels;
    }
  • 获取屏幕截屏
 public static String saveCurrentImage(Activity activity, Dialog dialog) {
        String result = "";
        View dialogView = null;
        Bitmap dialogBitmap = null;
        //获取当前屏幕的大小
        int width = activity.getWindow().getDecorView().getRootView().getWidth();
        int height = activity.getWindow().getDecorView().getRootView().getHeight();
        //生成相同大小的图片
        Bitmap activityBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
        //找到当前页面的根布局
        View view = activity.getWindow().getDecorView().getRootView();
        //设置缓存
        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache();
        //从缓存中获取当前屏幕的图片
        activityBitmap = view.getDrawingCache();

        //获取dialog的Bitmap
        if (dialog != null) {
            dialogView = dialog.getWindow().getDecorView().getRootView();
            dialogView.setDrawingCacheEnabled(true);
            dialogView.buildDrawingCache();
            dialogBitmap = Bitmap.createBitmap(dialogView.getDrawingCache(), 0, 0, dialogView.getWidth(), dialogView.getHeight());

            //location1[0]用于存放当前位置的横坐标,location1[1]用于存放当前位置的纵坐标
            int[] location1 = new int[2];
            //以屏幕左上角为原点,获取一个控件在其整个屏幕上的坐标位置
            view.getLocationOnScreen(location1);
            int[] location2 = new int[2];
            dialogView.getLocationOnScreen(location2);

            //将dialogBitmap绘制在activityBitmap上
            Canvas canvas = new Canvas(activityBitmap);
            canvas.drawBitmap(dialogBitmap, location2[0] - location1[0], location2[1] - location1[1], new Paint());
        }


        SimpleDateFormat df = new SimpleDateFormat("yyyymmddhhmmss");
        String time = df.format(new Date());
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/screen", time + ".jpeg");
//            File file = new File(UIUtils.getContext().getFilesDir() + "/" + time + ".png");
            if (!file.exists()) {
                file.getParentFile().mkdirs();
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(file);
                activityBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
                fos.flush();
                result = file.getAbsolutePath();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    fos = null;
                }
            }
        }

        if (activityBitmap != null) {
            activityBitmap = null;
            view.destroyDrawingCache();
            view.setDrawingCacheEnabled(false);
        }
        if (dialogBitmap != null) {
            dialogBitmap = null;
            dialogView.destroyDrawingCache();
            dialogView.setDrawingCacheEnabled(false);
        }
        return result;
    }
2016-07-19 11:30:48 aqi00 阅读数 3386
  • Android开发工具之道

    Android开发工具实战视频教程:1、开发借助IDE工具,开发者可以快速编写代码,掌握IDE的使用技巧,对提高编码效率、代码质量都有很大的帮助,同时,利用IDE的重构功能,可以对项目进行持续优化和改进。2、性能优化 常见性能检测场景中用到的检测工具 如何使用工具去分析、解决这些性能问题

    3926 人正在学习 去看看 CSDN讲师

Eclipse/ADT

ADT是Google在Eclipse基础上封装了Android开发工具的环境,最新版本是2014年7月2日发布的adt-bundle-windows-x86_64-20140702,之后Google推出自己的开发环境Android Studio,就不再更新ADT了。不过基于Eclipse的广泛使用,当前还是有不少app使用ADT进行开发。


在Eclipse上安装插件的步骤如下:依次选择菜单“Help”——“Install New Software...”——“Add”——输入插件名称和更新地址然后点击OK——回到Install页面勾选要安装的插件然后点击Next完成安装。下面是几个常用的Eclipse插件:


版本控制插件

SVN插件可让开发者在eclipse内部直接进行代码的版本控制操作,如检出项目、提交文件、更新文件、查看日志等等。
SVN插件的名称: Subclipse
更新地址: http://subclipse.tigris.org/update_1.12.x
下图是操作svn功能菜单的截图:



反编译插件

反编译插件使得我们能够在eclipse中直接查看sdk的源码,以及其他第三方sdk的源码,方便迅速了解各功能的实现原理。
反编译插件的名称: Eclipse Class Decompiler
更新地址: http://opensource.cpupk.com/decompiler/update


代码着色插件

该插件帮助开发者快速构建不用风格的编辑配色方案,使eclipse告别枯燥的白色背景,变得更加个性化。
代码着色插件的名称: Color Themes
更新地址: http://eclipse-color-theme.github.com/update


数据库管理插件

该插件支持在eclipse中直接查看sqlite数据库里的表记录,方便开发者管理数据库记录。
反编译插件的名称: SQLiteManger
安装包下载地址: http://download.csdn.net/detail/aqi00/9616510 ,下载之后放到eclipse安装路径下的plugins目录。
下面是该插件的使用截图,注意只能查看扩展名为db的数据库文件。




文件浏览器插件

使用过Xcode开发的人都知道,其有一个很实用的功能show in finder,即可快速定位到文件。这款插件就是让开发者能够打开选中文件所在的目录,只要在代码文件上右击,选择右键菜单中的“Explore in File System”,即可在文件管理窗口中查看该文件。
文件浏览器插件的名称: ExploreFS
更新地址: http://www.junginger.biz/eclipse/
下面是该插件的右键菜单截图:



Android Studio

Android Studio是Google自己搞的Android开发工具,当前稳定版本已经到了2.1.1,随着Android Studio的不断完善,后续会有越来越多的app迁移到该平台上。


常见问题

下面是我在使用Android Studio过程中遇到的几个问题:
1、第一次打开Studio报错“Unable to access Android SDK add-on list”
这个界面不用管,点击Cancel。进入到Studio主页面后,在“File”——“Project Structure”——“SDK Location”中分别设置sdk、jdk、ndk的路径。设置完毕,以后再打开就不会再报错了。
2、在Studio上创建一个新项目报错“Failed to resolve: com.android.support:appcompat-v7:23”
原因是“Android Support Library”这个库的版本低于23,需要打开“SDK Manager.exe”把该库升级到最新。升级完毕,重启Studio后自动重编译,就不会报这个错了。另外注意build.gradle文件中的dependencies段的compile值与“Android Support Library”的库版本保持一致,不然也会报错。
3、Studio上时常报错“Cannot resolve symbol ‘R’”
Studio会间歇性抽风,原因不明,可选择“Build”——“Clean Project”后重编。
4、运行工程时报错“compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.”
Studio默认指定最高版本的sdk(当前是24)进行编译,如果开发者机器上的jdk不是1.8版本,就会报错。解决办法有两种,一种是把jdk升级到1.8,另一种是修改build.gradle文件把compileSdkVersion的值降下来(如降到版本19)。


使用SVN

Android Studio自带了SVN插件,即Subversion,但还需要开发者进行相关配置后,才能正常使用svn功能。具体配置步骤如下:
1、安装TortoiseSVN
安装TortoiseSVN时要选择“command line client tools”,这样在安装后的bin目录下才能找到命令行工具svn.exe。
2、在Android Studio中配置TortoiseSVN的命令行工具
“File”——“Settings”——“Version Control”——“Subversion”——“user command line client”右侧的浏览按钮选择本地安装的svn.exe
3、在Android Studio中使用svn检出项目
“VCS”——“Checkout from Version Control”——“Subversion”
4、更新/提交svn
右击项目,在右键菜单中选择“Subversion”——“Update File...”(从svn更新文件)或者“Commit File...”(向svn提交文件)


安装插件

在Android Studio中安装插件的步骤与eclipse类似,具体步骤为:依次选择菜单“File”——“Settings”——“Plugins”——“Browser repositories...”,然后弹出一个当前可用插件列表的窗口,在该窗口的Category框中选择“Code tools”——选中指定插件——点击右边窗口的“Install”按钮,安装后重启Studio即可正常使用该插件的功能。下面是几个常用的Studio插件:


Android Parcelable code generator

该插件可自动生成Parcelable接口的代码。开发者先写好一个类及内部变量的定义,然后在代码中按下Alt+Insert,弹出的菜单列表下方就有“Parcelable”项,截图如下:

选中该项,即在类中插入实现了Parcelable接口的代码。


Android Code Generator

该插件可根据布局文件快速生成对应的Activity、Fragment、Adapter、Menu等代码。在布局文件上右击,或者在布局文件内部右击,弹出的右键菜单多了一个“Generate Android Code”选项,具体的菜单截图如下:

选中生成项后,便会弹出代码窗口,把已生成的代码复制出来即可。不过注意该插件对汉字的支持不好,如果xml文件中有汉字,则代码会生成失败。


GsonFormat

该插件能够快速将json字符串转换成代码段,包含变量定义,以及set和get函数。在代码中按Alt+S,弹出如下的json格式化窗口,往窗口中粘贴json字符串,点击OK按钮,即可在代码中插入生成好的代码段。GsonFormat的弹窗截图如下所示:



Android Postfix Completion

该插件支持在代码中快速生成Toast、Log等代码行,开发者在代码中输入字符串,后面跟上“.toast”并回车,即可生成Toast.makeText代码行;输入字符串后,紧接着输入“.log”并回车,即可生成Log.d代码行。下面是具体的操作截图:



Android Drawable Importer

该插件可对一张图片自动生成不同分辨率的图片,从而让图片对不同屏幕的适配工作变得更加容易。右击任意目录,在右键菜单中选择“New”,右方弹出的菜单列表末尾会出现“*** Drawable Importer”之类的菜单项,截图如下所示:

我们通常选中“Batch Drawable Import”,在弹出的窗口中选择图片文件路径,并勾选需要自动生成的分辨率,然后点击OK按钮,即可在drawabe各分辨率的目录下生成对应的图片。





点此查看Android开发笔记的完整目录

Android Studio 安装

阅读数 100

没有更多推荐了,返回首页