[Android Studio 权威教程]配置出“NB”的Android Studio

本文详细介绍了如何个性化配置Android Studio IDE,包括主题、代码风格、日志显示等,旨在提升开发者的工作效率与体验。通过设置主题、自定义代码风格、调整日志颜色、管理自动导入等功能,让你的开发环境更加符合个人喜好,实现流畅高效的编程体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几篇博客我们已经安装好了As,并且创建了我们的第一个HelloWrod ,这片blog我们继续配置出一个NB的Android Studio


如果你是一个才开始接触到AS或者想从Eclipse转型到AS的童鞋,那么请你持续关注我左边的专栏[Android Studio 权威教程],好的,开始我们的教程。


1.配置IDE主题

默认的主题是一个灰白色,看这特别的不好看,而且对于我们程序开发者来讲每天要对着电脑好几个小时,特别的伤眼睛,我们来配置一个高大上的暗黑主题。

这里写图片描述

点击这个设置的小图标

这里写图片描述

这里Theme默认是Default我们这里选择Darcula

这里写图片描述

点击 [Apply]我们的主题就变了

这里写图片描述

2. 配置代码主题

这里我们可以向Eclipse一样修改各种代码的主题,如[字体大小、字体颜色(建议默认)、字体间距等]


  1. 自定义一个代码主题

默认的两种主题我们是没办法修改的,我们需要自定义一个主题然后就可以修改了,操作如下:
这一步我们先选择[Darcula] 然后在[Save As]

这里写图片描述

这里写图片描述

2.设置字体大小和间距

这里写图片描述

3.设置控制台字体大小和间距

这里写图片描述

4.设置自动导包

有时候我们需要手动导包,非常的麻烦,我们可以设置一下就可以完全实现自动导包,这也是AS的亮点

这里写图片描述

5.设置代码自动显示行数

这里写图片描述

3. 设置代码自动提示

设置代码提示这比Eclipse的简单的多了,如下图,最重要的事把completion设置为None,其他的照着我的设置就可以了(一般是默认的):

这里写图片描述

效果

  • 在Java代码中提示
    这里写图片描述

  • 在XML中的提示
    这里写图片描述

4. 设置Logcat 颜色

默认AS的logcat只有Error和Assert是红色的而且没有差别,太影响视觉效果了。

先看我设置完后的效果

这里写图片描述

开始设置:
1. 找到 Editor -> Colors &Fonts -> Android Logcat 或在上面的搜索框中输入Logcat
2. 点中Verbose , Info, Debug等选项,然后在后面将Use Inberited attributes 去掉勾选
3. 再将 Foreground 前的复选框选上,就可以双击后面的框框去选择颜色了
4. Apply–>OK

这里写图片描述

对应色值

Log级别色值
VERBOSEBBBBBB
DEBUG0070BB
INFO48BB31
WARNBBBB23
ERRORFF0006
ASSERT8F0005

,直接复制上边对应的色值到如下

这里写图片描述

如果你想设置更加炫酷的Android Studio Logcat,请看我的这篇blog,效果如下,记得顶哦

这里写图片描述

Android Studio -添加你见过的最牛Log*神器*

5.取消AS启动时每次启动上次的项目

这一点如果你使用AS比较久了,你就会很讨厌这个功能,加入说我上次同时开启了5个项目,我关闭了,下次启动全部依次给我打开了,而且在windows上,有时直接把电脑卡死机。好在Google给我们可以设置的地方,在每次启动的时候可以让我们选择要打开的项目:

这里写图片描述

效果:

这里写图片描述

6.导出/导入我的个“NB“设置

这里我们做了这么多的设置,如果电脑重装系统了,我们重新安装了AS,那么我们又要重新设置一遍了,非常的浪费时间,那么我们可以导出这些设置,下载直接导入OK了

导出:
这里写图片描述

这里写图片描述

放到桌面我们的保存也是不永久的,我建议童鞋们把刚才桌面的那个settings.jar文件放到网盘上,然后下次下载导入就可以了。

导入:
这里写图片描述

如上图点击之后选择我们导出的settings.jar文件就OK了


有兴趣的童鞋可以关注我的Blog,我的专栏会持续更新Android Studio 教程,以及2015 I/O大会上的NDK的配置和编译,我也全部会分享给大家。
并且我收到了CSND 的讲师邀请,后期我会把这些Android Studio的使用教程录制成视频发布在优快云学院。


如果你还有问题,请在这里给我留言,我会及时回复,如果还有你想设置的东西,可以留言,如果你感觉好,那么请点击顶。


/**
 * --------------
 * 欢迎转载   |  转载请注明
 * --------------
 * 如果对你有帮助,请点击|顶|
 * --------------
 * 请保持谦逊 | 你会走的更远
 * --------------
 * @author zsl
 * @github https://github.com/yy1300326388
 * @blog http://blog.youkuaiyun.com/yy1300326388
 */
<think>好的,我现在需要帮助用户获取在Android Studio中实现录音功能的代码示例。首先,我得回顾一下用户之前的提问和引用内容,确保回答准确且符合他们的需求。 用户提供了几个引用,其中引用[1]提到了一个RecordingService类,但代码不完整。引用[2]和[4]讨论了使用MediaRecorder实现录音功能,以及相关的权限处理和生命周期管理。引用[3]和[5]可能涉及数据波形和记事本功能,但当前问题主要关注录音功能。 首先,我应该确定实现录音功能的基本步骤。通常,在Android中录音需要使用MediaRecorder类,处理权限请求,管理文件存储,以及控制录音的开始、停止等操作。此外,服务(Service)可能用于后台录音,但根据用户提供的引用[1],他们可能希望看到如何在Service中实现录音逻辑。 接下来,我需要确保代码示例符合最新的Android开发实践,比如使用AndroidX库,处理运行时权限(如RECORD_AUDIO和WRITE_EXTERNAL_STORAGE),以及正确的文件路径管理。同时,应该包括必要的生命周期方法,如onCreate、onDestroy,以及错误处理。 考虑到用户可能需要完整的示例,我应该提供Activity和Service的代码,并解释关键部分。例如,在Activity中处理权限请求,启动和停止服务;在Service中初始化MediaRecorder,开始和释放录音资源。此外,需要说明如何将Service添加到AndroidManifest.xml,以及权限声明。 还要注意用户可能遇到的常见问题,比如文件保存路径、权限被拒绝时的处理,以及不同Android版本的存储差异。例如,Android 10及以上版本可能需要使用MediaStore或者应用专属目录。 最后,根据用户要求,生成相关问题,可能涉及性能优化、波形显示、错误处理等,这些在引用[3]和[2]中有所提及,可以作为扩展内容。</think>在Android Studio中实现录音功能主要需使用$MediaRecorder$类和权限管理。以下提供完整实现方案(兼容Android 6.0+): ### 一、核心实现代码 1. **录音服务类**(继承Service) ```java public class RecordingService extends Service { private MediaRecorder mRecorder; private String mFilePath; @Override public void onCreate() { super.onCreate(); mFilePath = getExternalCacheDir().getAbsolutePath() + "/audio_record_" + System.currentTimeMillis() + ".3gp"; } @Override public int onStartCommand(Intent intent, int flags, int startId) { startRecording(); return START_STICKY; } private void startRecording() { mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mRecorder.setOutputFile(mFilePath); mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { mRecorder.prepare(); mRecorder.start(); } catch (IOException e) { Log.e("RecordingService", "prepare() failed"); } } private void stopRecording() { if (mRecorder != null) { mRecorder.stop(); mRecorder.release(); mRecorder = null; } } @Override public void onDestroy() { stopRecording(); super.onDestroy(); } @Nullable @Override public IBinder onBind(Intent intent) { return null; } } ``` 2. **主Activity控制逻辑** ```java public class MainActivity extends AppCompatActivity { private static final int REQUEST_RECORD_AUDIO = 101; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button recordBtn = findViewById(R.id.btn_record); recordBtn.setOnClickListener(v -> checkPermissions()); } private void checkPermissions() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_RECORD_AUDIO); } else { startRecordingService(); } } private void startRecordingService() { Intent serviceIntent = new Intent(this, RecordingService.class); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(serviceIntent); } else { startService(serviceIntent); } } @Override public void onRequestPermissionsResult(int code, @NonNull String[] permissions, @NonNull int[] results) { super.onRequestPermissionsResult(code, permissions, results); if (code == REQUEST_RECORD_AUDIO && results[0] == PackageManager.PERMISSION_GRANTED) { startRecordingService(); } } } ``` ### 二、必须配置项 1. **AndroidManifest.xml** 添加: ```xml <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <service android:name=".RecordingService" android:enabled="true" android:exported="false"/> ``` ### 三、技术要点说明 1. 使用$MediaRecorder$需遵循初始化顺序:设置音频源→输格式→编码器→输文件路径[^4] 2. Android 8.0+需使用$startForegroundService()$启动前台服务 3. 文件存储建议使用$getExternalCacheDir()$避免存储权限问题[^2] 4. 需处理运行时权限请求(API 23+) ### 四、扩展优化建议 1. 添加波形可视化可参考$Visualizer$类实现[^3] 2. 持久化存储可结合Room数据库管理录音记录[^5] 3. 异常处理建议添加$setOnErrorListener$
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZeroFlutter

感谢支持,请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值