Android项目中音频文件的存储位置
1、Android工程中声音文件的存储位置在资源文件的raw文件夹下
2、如果在res文件夹下没有raw文件夹,新建一个即可
3、在音频文件数量多的情况下,将音频文件存放在assets目录,可避免文件的重复编译
Android Studio 下载 Gradle 失败或下载速度慢的解决方案
方案1:参考文档
方案2:参考文档
方案3:更改 Android Studio 中使用的 Gradle 的路径
在安装 Android Studio 时,会默认安装一个 Gradle 版本,文件在 Android Studio 安装目录的根目录下
修改路径步骤
Android权限sharedUserId使用:设备关机重启、调用隐藏方法、静默安装升级卸载APP等需要使用system权限的场景
声明:本文所列出的解决方案为转载文章,原文出处:https://blog.csdn.net/hmg25/article/details/6447067
1 楼主开发中遇见的问题1.1 问题出现场景在自己开发的APP中发送系统重启广播
/** * 重启系统 * * @param context 上下文对象 */public static void reboot(Context context) { Intent intent = new Intent(Intent.ACTION_REBOOT); intent.putExtra("nowait", 1); intent.putExtra("interval", 1); intent.putExtra("window", 0); context.sendBroadcast(intent);}
1.2 问题描述APP是可以正常安装运行的,但是在接收到系统重启的广播之后,APP崩溃。。。
捕获到的异常信 ...
相机调用失败原因
应用场景:相机在应用中被多次打开时,每一次使用完相机后,都应及时释放相机资源,解除占用。
这里只介绍楼主开发过程中遇到的且容易忽略的两点:
是否开启相关权限。
在打开相机之前,就已经使用了相机(二次打开相机),且未对相机资源进行回收。也就是说,在相机使用结束后,应及时释放相机资源,解除相机占用,接下来才能正常使用相机。
ListView组件中嵌套GridView(重算GridView的高度)
应用场景:在ListView的子项中嵌套GridView,需要重算每一个子项GridView的高度,否则GridView只能显示一行。
自定义Gridview:
import android.content.Context;import android.util.AttributeSet;import android.widget.GridView;/** * 自定义GridView * <p> * Created by Karen Chia on 2019/4/1. * * @author Karen */public class CustomGridView extends GridView { public FloorHouseNumberGridView(Context context) { super(context); } public FloorHouseNumberGridView(Context context, AttributeSet attrs) ...
Gradle插件升级与AAPT2编译和打包资源工具相关问题
应用场景:在使用最新版AS开发过程中,Gradle插件build项目时,出现如下错误信息:
Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
解决方案:在gradle.properties文件中加入 android.enableAapt2=false
参考:aapt2 工具介绍:https://www.jianshu.com/p/839969887e2cAndroid Gradle的理解以及升级Gradle插件3.0.1遇到的坑:https://www.jianshu.com/p/6f3c34b36037
在 Android Studio 中配置的忽略文件
应用场景:在分布式代码版本控制器中,配置提交代码时的忽略文件。
需要忽略的文件.idea文件夹
.gradle文件夹
所有的build文件夹
所有的.iml文件
local.properties文件
gradle文件夹
在Android Studio的设置系统中进行以下配置
冒泡排序
冒泡排序将相邻的两个元素逐一进行比较,将大的一个元素后移,每比较完一次都会将最大的一个元素移动到最后,然后再用相同的方法依次比较剩余的元素。
package blog.csdn.net.zhaikun.arithmeticdemo;import java.util.Arrays;/** * Created by zhaikun68 on 2018/2/22. * <p> * 冒泡排序Demo */public class BubbleSortDemo { private static final String TAG = "BubbleSortDemo";//日志打印标记 public static void main(String[] args) { int[] initArray = {9, 10, 1, 2, 0, 8, 0, 5, 8, 3}; int[] sortAfterArray & ...
选择排序
选择排序在待排序的数组中,任意指定一个数作为数组中最小的数并记录其在数组中的位置,记为a,将该数与待排序数组中的数据依次进行比较,当该数字比数组中的数字大时,将此时数组中小的数据的位置交给a,此时a位置所对应在数组中的值作为指定的最小数再次与数组中剩余的数依次进行比较;当指定的最小数与数组中的数据全部比较完之后,得到一个数组中最小的数,然后将这个最小的数排到数组的最左端,在待排序数组中排除最左端已经完成排序的数,将剩下的数作为一个数组,按一样的方式再次进行比较。
package blog.csdn.net.zhaikun.arithmeticdemo;import java.util.Arrays;/** * Created by zhaikun68 on 2018/2/23. * <p> * 选择排序Demo */public class SelectionSortDemo { /** * 选择排序 * * @param sortArray 待排序数组 * @return 排 ...
插入排序
插入排序有待排序数组A,任意指定A中某一位置作为元素的插入位置B。此时,假设B位置左端的所有元素都是有序的,记录下B位置的元素ValueB,将ValueB与其左端的有序元素进行比较,如果ValueB左端的元素大于或等于ValueB,则将其后移一位,最后在后移空出的位置将ValueB插入。重复以上步骤,直到数组中的最后一个元素,排序结束。
package blog.csdn.net.zhaikun.arithmeticdemo;import java.util.Arrays;/** * Created by zhaikun68 on 2018/2/24. * <p> * 插入排序Demo */public class InsertSortDemo { /** * 插入排序 * * @param sortArray 待排序数组 * @return 已排序数组 */ private static int[] insertSort(int[] sortArray ...