Android
ScriptGirl
热爱技术探讨,语言包括且不限于Java、SQL、C/C++、Python、Android,领域包括且不限于大数据、移动端编程、后端编程
展开
-
【Android Studio】在Mac中更换JDK Location
在Mac中更换JDK Location原创 2022-11-07 22:11:27 · 796 阅读 · 0 评论 -
【Android】Lifecycles使用
系列文章:https://juejin.cn/post/6844903768618696711转载 2021-07-22 19:53:01 · 83 阅读 · 0 评论 -
【Android】常用依赖
联网:Retrofit:GitHub、官网 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'生命周期组件 // lifecycle def lifecycle_version = "2.3.1" // ViewModel implementation "android.原创 2021-07-22 19:50:46 · 264 阅读 · 0 评论 -
【Android】自己手动打包一个apk,了解Android构建流程
1. 配置ANDROID_HOME环境变量以下是在mac下操作的过程。这样便于使用Android SDK自带的工具。vim ~/.bash_profile 以下代码,等号两侧不要有空格:export ANDROID_HOME=/Users/ztc/Library/Android/sdkexport PATH=$PATH:$ANDROID_HOME/toolsexport PATH=$PATH:$ANDROID_HOME/platform-toolsexport PATH=$PATH:$AN原创 2021-07-22 19:48:52 · 443 阅读 · 0 评论 -
【Android】配置HTTP代理
File>Settings>HTTP Proxy Settings> Auto-detect proxy settings>Automatic Proxy configuration URL: https://plugins.jetbrains.com设置HTTP Proxy:原创 2021-06-27 12:01:33 · 899 阅读 · 0 评论 -
【Android】跳转到指定的系统页:Wifi配置、热点配置
Android10 小米 亲测可用:Wifi配置:startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));热点配置:// 第一个参为包名,第二个各个设置的类名(可以参考下面,包名不用改变)ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.TetherSettings");Intent intent = new Inte原创 2021-06-27 12:00:28 · 1204 阅读 · 0 评论 -
【Android】Android热点的开启、关闭、监听
参考1参考2WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);如果wifi打开关闭wifi:在6.0及其以下版本,在开启热点之前要先手动关闭wifi。以后版本就不需要了会自动关闭,热点关闭后也会自动打开。if (wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(fal原创 2021-06-26 22:00:26 · 1132 阅读 · 0 评论 -
【Android Studio】Android Studio ADB Wifi 无线调试
安装Adb Wifi插件打开File->perfrence->plugins->Browse repositories…->搜索 adb wifi->点击安装连接手机先用最普通的方式,用USB连接线,将手机和电脑连接,并成功被AS识别。然后操作如下:会出现:只要显示连接上了,就可以拔掉电脑和手机之间的USB连接线了。成功。...原创 2021-06-26 10:38:45 · 6072 阅读 · 0 评论 -
【数据库】sqlite版本升级、降级
定义全局变量:public static SQLiteHelper dbHelper;public static String folder = "android.xxx.xxx"; // 数据库保存地址public static String file = "database.db"; // 数据库名称public static int DB_VERSION = 1; // 数据库的版本号public static SQLiteDatabase db; // 数据库初始化数据库(在M..原创 2021-06-22 21:40:20 · 1872 阅读 · 2 评论 -
【Android】Android studio中的Gradle压缩包存放位置查看
当你去C:\Users\dj\.gradle找Gradle的压缩包,发现这里放了各种版本的压缩包也无效的时候,不妨先去AS中查看一下你的这款AS,它会去哪里读取Gradle的压缩包:原创 2021-06-04 16:25:54 · 2670 阅读 · 0 评论 -
【Android】Android多进程
多进程+单线程——Messenger多进程+多线程——AIDL单进程+多线程——Handler1、多进程+单线程——Messenger信息从MessengerActivity.java发出,在MessengerService.java中接收。如果MessengerActivity.java发出信息时,捎带了一个Handlerd而非null,那么MessengerService.java中也能拿到这个Handler,通过这个handler返回信息给MessengerActivity.java,实现双原创 2021-06-01 20:27:37 · 104 阅读 · 0 评论 -
【Android】崩溃日志手机端显示工具:SpiderMan
https://www.wanandroid.com/blog/show/2739SpiderManSpiderMan能为您做的事:在Android手机上显示闪退崩溃信息,直接分享给相关开发人员!再也不用担心测试妹妹给你重现怎样操作才能触发闪退崩溃的尴尬!再也不用担心产品给你说哪儿哪儿会闪退崩溃,但是又不能场景还原的无奈!再也不用担心某些国产Rom禁止异常log输出!再也不用担心开发工具异常log信息输出时灵时不灵!...原创 2021-06-01 20:23:22 · 631 阅读 · 0 评论 -
【Android】在AS中room数据库的可视化视图查看
androidStudio自带了一个查看器:原创 2021-06-01 20:16:22 · 1874 阅读 · 0 评论 -
【Android】dataBinding开启方法
android { dataBinding { enabled = true }}原创 2021-06-01 20:07:30 · 531 阅读 · 0 评论 -
【Android】AlertDialog.Builder使用
final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.new_name, null);AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this);adb.setView(view).setTitle(R.string.CaseName);final EditText ed_name = view.findViewById原创 2021-06-01 20:05:13 · 599 阅读 · 0 评论 -
【Android】SVG
可以下载SVG图片的网站:https://www.amcharts.com/download/原创 2021-05-26 18:28:05 · 158 阅读 · 1 评论 -
【Android】Android studio不打开默认项目
原创 2021-05-26 18:26:31 · 340 阅读 · 0 评论 -
【Android】开关控件Switch的简单使用
最基本情况的按钮:<Switch android:id="@+id/switch_普通开关" android:layout_width="match_parent" android:layout_height="wrap_content" />效果如图:简单设置: <?xml version="1.0" encoding="utf-8"?> 效果展示: 这里layout转载 2021-05-26 18:24:48 · 1945 阅读 · 0 评论 -
【Android】runOnUiThread的使用
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_test: this.runOnUiThread(new Runnable() { @Override public void run() { mBt..原创 2021-05-17 18:05:51 · 462 阅读 · 0 评论 -
【Android】让Android Studio支持中文路径
今天用android studio导入项目,一直报错,错误如下:Error:(9, 0) Your project path contains non-ASCII characters.研究了好久发现android studio不能直接导入带中文路径的项目,网上查了好久的资料终于找到啦!亲测可用哟,解决方式如下:步骤一:找到 C\Users\用户名.gradle目录下的gradle.properties,如果该文件不存在则创建。步骤二:在gradle.properties中添加如下设置:com原创 2021-04-28 20:37:52 · 2447 阅读 · 0 评论 -
【Android】控件按下抬起变色
Android按下抬起变色的功能主要用到的是 state_pressed这个属性 值有True(代表按下) false(代表抬起)在res文件夹下新建一个文件夹drawable,创建文件:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">如果只想改变按下变色,注释掉默认背景颜色:<!-- <i原创 2021-04-27 20:21:05 · 441 阅读 · 0 评论 -
【Android】转成AndroidX
1 更新升级插件将AS更新至 AS 3.2及以上;Gradle 插件版本改为 4.6及以上;项目下 gradle/wrapper/gradle-wrapper.propertie 文件中的distributionUrl改为:distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip 或以上compileSdkVersion 版本升级到 28及以上;buildToolsVersion 版本改为原创 2021-04-27 20:20:36 · 734 阅读 · 0 评论 -
【Android】DataBinding数据绑定:使用ObservableFields中的天坑
DataBinding系列文章:https://www.jianshu.com/p/d429174b8d07定义Bean的两种方法:区别很大,看着感觉差不多,功能应该一样,但是!!最后Bean2的写法无法实现数据绑定!!!(1)定义Bean2:public class DoubleBindBean2 { public final ObservableField<String> username = new ObservableField<>(); publ原创 2021-04-27 20:19:35 · 1571 阅读 · 1 评论 -
【Android】Kotlin
1 Kotlin是什么Kotlin是一种基于JVM的编程语言。Kotlin是对java的一种扩展。Kotlin支持函数式编程。Kotlin类与java类能互相调用。2 环境搭建3 实例var 变量fun 函数? 非空判断!! 若为空,抛出异常...原创 2021-04-26 20:48:26 · 166 阅读 · 0 评论 -
【Android】lint检查
1 Android lint 检查Android lint是一个静态代码分析工具。它会对我们的代码进行扫描和检查,提前发现问题,通过lint tool工具输出一个文件,告诉我们哪行代码有问题。具体来说,它能对我们的Android项目中潜在的bug,可优化的代码、安全性、性能、可用性、可访问性、国际化等进行检查。现在的AS默认安装。2 lint工作流程3 如何配置lint配置lint.xmljava代码和xml布局文件中添加注解来抑制lint检查自定义lint根据自己的原创 2021-04-26 20:38:28 · 522 阅读 · 0 评论 -
【Android】进程保活
1 Android进程的优先级Foreground processVisible processService processBackground processEmpty process 唯一目的:做缓存,缩短下次运行组件所需的启动时间2 Android进程的回收策略Low memory killer:通过比较复杂的评分机制,对进程打分,将分数高的进程判定为bad进程,杀死并释放内存。OOM_ODJ:判别进程的优先级。3 进程保活方案利用系统广播拉活缺点:可以通过在And原创 2021-04-26 20:04:12 · 120 阅读 · 0 评论 -
【Android】自定义控件:概述+手写RecyclerView
自绘控件:自定义容器类控件手写RecycleView()原创 2021-04-26 19:39:02 · 139 阅读 · 0 评论 -
【Android】Material Design
主题共3种:适配API在21以下的,需要使用兼容包:各种颜色,及其所控制的地方:其中:(1)toolbar,拥有高度灵活性,可定制性,用来代替actionbar(2)DrawerLayout,左右滑动的窗口(3)NavigationView ,与DrawerLayout配合(4)BottomNavigationView,底部提示框(5)FloatingActionButton,悬浮按钮(6)Snackbar,提示功能,用来替代Toast(好文:https://www.jiansh原创 2021-04-26 19:38:21 · 131 阅读 · 0 评论 -
【Android】Android长按复制文本功能
安卓一般能用到长按复制的控件Textview,Editext,可能也有WebView在开始之前先说一个我遇到的一个坑:viewGroup中有一个这个属性android:descendantFocusability=”blocksDescendants”这个属性有三个值:beforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点blocksDescendants:vie原创 2021-04-25 19:33:05 · 7072 阅读 · 0 评论 -
【Android】热更新
1. 热更新流程2. 主流热更新框架Dexposed 热更新、日志记录等AndFix 只专注于热更新Nuwa 基于Android的dex分包技术3. 热更新原理Android类加载机制:DexClassLoader 和 PathClassLoader热修复机制:在ClassLoader中创建一个用于存放dex文件的dexElements数组,通过线上的Crash定位找到出问题的类文件,修正这个类文件,打包成一个dex文件(补丁),将补丁放在dexElements最前方,由于ClassL原创 2021-04-24 22:14:15 · 173 阅读 · 0 评论 -
【Android】Android插件化
1. 插件化来源65536 / 64K 方法数上限随着APP越来越大,里面的方法也越来越多,虽然可以通过H5和跨平台开发技术一定程度上避免这个问题,但是,APP使用体验比不上Native。2. 插件化要解决的问题动态加载APK资源加载代码加载2.1 动态加载APK类加载器:(将Java的字节码文件加载到虚拟机)1: DexClassLoader从APK中的dex实体的java文件中加载,主要用于动态加载,代码热更新2: PathClassLoader只能加载文件目录下的APK2.原创 2021-04-24 21:54:27 · 100 阅读 · 0 评论 -
【Android】Android架构:MVC-MVP-MVVM深度、高质量学习
1 MVC(模型、视图、控制器)介绍MVC:在Android开发过程中,曾经比较流行的框架是MVC模式。采用MVC模式,便于UI界面的显示、和业务逻辑的分离。具体来说:M层Model层,用来做具体逻辑的处理,会进行一些数据库的操作、网络操作等,这些复杂耗时的操作可以在Model层进行处理。V层View层,用于处理数据显示的部分。XML布局可以视为View层。C层Controller层,Android中Activity主要用于处理用户交互问题,可以视作Controller。然后从Model层读原创 2021-04-24 21:16:56 · 313 阅读 · 5 评论 -
【Android】android studio 安装出现两个图标
我把android项目安装到手机上的时候,发现我的app在手机上出现了两个图标。两个图标点开之后正常打开我的应用,如果卸载其中一个的话,则是把两个都删掉。解决方法:将library包中的AndroidManifest.xml文件中的下列内容注释掉:<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" a原创 2021-04-14 20:07:09 · 1542 阅读 · 0 评论 -
【Android】平台默认的字符集编码格式查询
Charset.defaultCharset()System.out.println(Charset.defaultCharset());原创 2021-04-14 20:06:51 · 1016 阅读 · 0 评论 -
【Android】Android点击事件:实现点击空白处让EditText失去焦点并收起系统软键盘
这里我的解决思路就是通过事件的分发来判断手指点下的位置,是不是editText。如果点击的是editText那么就按照原来正常进行;如果点击的不是editText那么就应该让editText失去焦点并收起键盘。所以一共有三个点:在哪里截取点击事件并进行处理?如何判断点击位置是否为editText的位置?如何收起软键盘并让editText失去焦点?一个一个来看:首先我们可以在Activity的dispatchTouchEvent方法中截取点击事件。至于为什么,这个是关于点击事件分发的相关内容;转载 2021-04-14 20:06:23 · 1974 阅读 · 1 评论 -
【Android】回调接口Callback的使用
在第一个类EditSpinner 中:设置item的点击回调接口,创建接口对象private OnItemClickLitener mOnItemClickLitener;设置item的点击回调接口,定义接口中的方法public interface OnItemClickLitener { void onItemClick(AdapterView<?> parent, View view, int position, long id);}创建类中的方法,给该类中的接口对象原创 2021-04-14 20:05:16 · 518 阅读 · 0 评论 -
【Android】Android项目将module打包成aar文件
版权声明:本文为CSDN博主「娃哈哈19910206」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/a872822645/article/details/81120193打开Studio 右上角。Gradle–>要打包的Module–>Tasks—>build–> 注意 。。这里有好几个选项assemble 这是同时打 debug 包 和 release 包assembleDebu转载 2021-04-12 19:32:57 · 295 阅读 · 0 评论 -
【Android】使用Gradle把自己开发的项目部署到JitPack
先创建一个新的工程,开发时,千万要注意各个模块和整个工程的命名一定要有区别;确保工程可以正常运行;将工程上传到GitHub,并在GitHub上创建发布版本,标注版本号,最好用1.1.2类似的数字标注;登录https://jitpack.io/,输入用户名/GitHub上的相应工程名,底下会出现所有的发布版本号,点get it,确保Log列的图标时绿色才能正常被加载,如果是红色,说明有错误。...原创 2021-04-12 19:17:16 · 120 阅读 · 0 评论 -
【Android】组件化
组件化1 Gradle1.1 打印信息Gradle构建工具,Groovy脚本语言基本Java做了拓展,Gradle = JDK + Groovy新建工程,在app的build.gradle中,添加:println("hello gradle")或println "hello gradle"同步时,在Build中可以看到打印出来的信息:> Configure project :apphello gradle> Configure project :libraryhell原创 2021-04-11 21:58:00 · 2976 阅读 · 0 评论 -
【Android】数据存储,sqlite使用注意事项
获得公共路径下的文件夹目录:public class GetDir { // 获取Excel文件夹 public static String getDir(String pathname) { // SD卡指定文件夹 String sdcardPath = Environment.getExternalStorageDirectory().toString(); File dir = new File(sdcardPath + File.se原创 2021-04-11 21:57:25 · 179 阅读 · 0 评论