Android
文章平均质量分 55
☆七年
创造价值,乐哉分享!
展开
-
H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5
H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示!原创 2024-02-22 10:04:44 · 6782 阅读 · 1 评论 -
获取依赖aar包的两种方式-在android studio里引入 如:glide
背景:我需要获取aar依赖到内网开发,内网几乎代表没网。方式一:在官方的github中下载 方式二:通过android studio 的gradle 编译工具下载原创 2024-01-29 15:23:06 · 3619 阅读 · 0 评论 -
添加jdk 11到环境变量的一种方法
File --> Settings --> Build, Execution, Deployment --> Build Tools --> Gradle下载jdk 11 ,确认好下载路径原创 2024-01-06 13:57:03 · 709 阅读 · 0 评论 -
groovy.lang.MissingPropertyException: Could not get unknown property ‘defaultConfig‘ for获取versionNam
这个错误通常出现在使用 Groovy 脚本或 Gradle 构建中。可能想在某个文件中获取 versionName 属性值,但出现了 ‘defaultConfig’ 未知错误提示。如果你正在使用 Android 项目,那么 ‘versionName’ 属性通常是在 ‘defaultConfig’ 块中配置的。:怎么解决在.gradle文件中获取versionName。原创 2023-12-25 16:56:09 · 5123 阅读 · 0 评论 -
cordova常用插件说明
cordova-plugin-wkwebview-engine 1.2.2 "Cordova WKWebView Engine"暂无用清理。此插件使Cordova使用WKWebView组件,而不是默认的UIWebView组件,并且只能安装在iOS9.0SDK的系统上。cordova-plugin-cache-clear 1.3.7 "Cordova Cache Clear" 暂无用清理。app内置浏览器打开一个网址,可以设置加载url添加参数,监听加载停止和错误,以及加载出的方法监听。原创 2023-07-10 11:30:36 · 664 阅读 · 0 评论 -
Compose 去除点击水波纹阴影效果_局部and全局去除-CompositionLocal实例
一针对单个view,去除点击效果,可以在clickable中添加indication=null,interactionSource=remember{MutableInteractionSource()}实际开发中,要求去掉点击效果,不单单是一个view,肯定是整个界面,甚至是整个应用,如何全局去除默认的点击效果?针对整个Activity,你可以在最root的compose里设置,通过CompositionLocal(composeview的点击默认有阴影效果,实际开发中要求去除?......原创 2022-07-17 12:52:32 · 4179 阅读 · 0 评论 -
AIDL bindService连接不了_onServiceConnected不触发
targetSdk高版本后,不允许后台启动service,办法零targetSdk改回低版本;办法一通信应用启动的情况下进行AIDL操作;办法二service启动声明为前台应用。bindSevice成功后,ServiceConnection的onServiceConnected没有触发。targetSdk高版本,写AIDL时,其他都配置好了,如下现象,依旧连接不了。添加标签,指定需要启动应用的包名,如下图。以上是实践结果,具体限制情况,请参考谷歌官方。......原创 2022-07-15 15:22:12 · 1496 阅读 · 1 评论 -
创建AIDL的常见问题 can be an out type, so you must declare it as in, out, or inout.
创建AIDL的常见问题原因:当我们传入的参数不是除short外的java八大基本类型,String、CharSequence、以及List时,就会报错。aidl不会自动import,需要我们手动添加import。如下图解决办法:手动添加import 包原因:有些类型缺少in\out\inout标签就会报错,in 表示数据只能由客户端流向服务端; out 表示数据只能由服务端流向客户端;inout 表示数据可在服务端和客户端双向流通。解决办法:在传递对象bean前加个in......原创 2022-07-13 16:01:55 · 1877 阅读 · 0 评论 -
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
1.问题:Android Gradle需要java11,你当前的使用的java8,编译不过。错误提示如下:当前AS不满足当前工程编译环境2.问题原因:把sdk 编译版本改成31后,就出现了这个问题3.解决办法:升级android studio 到最新版本,ok......原创 2022-04-13 17:07:41 · 44314 阅读 · 6 评论 -
Android 判断连接网络(wifi)是否有效
方法一 二失败 方法三可行方法一:获取NetworkInfo信息 private NetworkInfo getCurNetworkInfo() { ConnectivityManager connectivityManager = (ConnectivityManager) mContext .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info ...原创 2021-06-08 11:36:31 · 3026 阅读 · 3 评论 -
Android Serivce 自己干掉自己
启动一个服务去完成一个耗时的任务,如读取数据库上报,任务完成后,需要自己关闭。在Serivce内部的关闭方式:方式一 Log.d(TAG, "stopService"); Intent bindIntent = new Intent(this, MyService.class); stopService(bindIntent);方式二 Log.d(TAG, "stopSelf"); stopSelf();...原创 2021-05-26 15:58:12 · 285 阅读 · 0 评论 -
java 把json数据转换成Url参数-案例
java 把json数据转换成Url参数-具体实现//{"triggerId":"1e5be72d55134935bc5bfb1e3f778718"} public String parseJsonToUrlParams(String json) { try { JSONObject jsonObject = new JSONObject(json); Iterator it = jsonObject.keys();原创 2021-05-13 22:09:32 · 3951 阅读 · 1 评论 -
ListView全部显示item判定-代码案例
ListView如何区分全部显示在界面上的View@Overridepublic Point findRangePosition() { int firstComPosition = -1; int lastComPosition = -1; try { firstComPosition = findFirstCompletelyVisibleItemPosition(((ListView) mView).getFirstVisiblePosition());原创 2021-05-11 10:25:49 · 301 阅读 · 0 评论 -
RecyclerView添加长按的两种方式-代码案例
这里写自定义目录标题RecyclerView添加长按的两种方式-代码案例第一种 添加Menu的方式第二种 RecyclerView设置监听回调方式RecyclerView添加长按的两种方式-代码案例第一种 添加Menu的方式从RecyclerView的Adapter入手,在Adapter的ViewHolder中为每个itemView设置setOnLongClickListener监听,然后在长按监听回调中设置当前的position,为每个itemView设置setOnCreateContextMenu原创 2021-05-11 10:18:25 · 1506 阅读 · 0 评论 -
很强的adb命令-实践过的
设备 USB 连接不上的情况下,可以尝试同一个局域网连接,命令如下 adb connect IP 网络连接设备 如 adbconnect 192.168.9.77 连接到网络adb 需要跟电脑同一个网关或者频段清理应用数据adb shell pm clear com.google.android.tvlauncheradb shell pm clear com.android.tv.settingsadb 开启应用 adb shell am start -ncom.nes.s..原创 2020-12-09 18:30:47 · 1050 阅读 · 0 评论 -
android Settings系统的三种数据属性及其adb修改指令
android Settings系统属性,共分三种:1.global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限;2.system:包含各种各样的用户偏好系统设置;3.secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。在java语言中的读写形式如下//SystemSettings.System.putInt(getActivity().getContentResolver(), "sound_effects_enabled", 1);Settings原创 2020-12-09 17:53:36 · 18555 阅读 · 0 评论 -
如何通过接受广播,更新数据?-简单实例
如何通过接受广播,更新数据?简单实例如下 @Override public void onResume() { super.onResume(); sendBroadcastGetNetflixEsn(); } private void sendBroadcastGetNetflixEsn() { IntentFilter esnIntentFilter = new IntentFilter(原创 2020-12-09 15:43:28 · 261 阅读 · 0 评论 -
洛洛阅读—自己写的简约Android小说阅读器背景
一款程序员自己的免费安卓小说阅读器,推荐。首先,我应该怎么介绍我自己编写的小说阅读器呢?......嗯?从我高中说起吧,那会就开始迷上了看小说,记得让我入坑的第一部小说是土豆《斗破苍穹》。那时候学校教室是不让带手机,我就经常利用中午午休的时间,躲在朋友的租房里看,在书店里站着看,还记得那是个夏天,汗流浃背的环境不太好,但看的挺爽,直到把它追完。之后我是又间歇性追着《遮天》《斗罗大陆》等小说,深入各种小说的新世界。在紧张枯燥的学习生活之...原创 2020-12-09 15:17:00 · 1225 阅读 · 1 评论 -
Android 根据时间生成versionName,同时编译出动态apk命名
在build.gradle定义函数,根据时间动态返回时间标签def static releaseTime() { return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))}versionName "1.0".concat("_").concat(releaseTime())//版本号加上时编译出来的动态包名android.applicationVariants.all { variant ->原创 2020-12-09 12:53:31 · 903 阅读 · 0 评论 -
Preference xml中怎么添加直接跳转activity 和fragment
Preference xml中怎么添加直接跳转activity 和fragment,实例如下 <Preference android:icon="@drawable/ic_ir_setup_tv" android:key="ir_setup" android:title="@string/device_ir_setup"> <intent android:targetClass="com.st原创 2020-12-08 19:01:39 · 1005 阅读 · 0 评论 -
Google Play Movies和YouTube最新启动方式-代码
一、Google Play Movies 最新启动方式遥控器按键private static final String REMOTE_REFERRAL = "ro.product.brand.property_remote_button";Uri movieUri = Uri.parse("http://play.google.com/movies").buildUpon().appendQueryParameter("pcampaignid", REMOTE_REFERRAL).build()原创 2020-12-08 18:57:13 · 1805 阅读 · 0 评论 -
Android Frameworks系统层禁止指定应用启动【disable startActivity】实例
Frameworks系统层禁止指定应用启动【disable startActivity】你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdo原创 2020-12-08 18:35:59 · 3076 阅读 · 0 评论 -
Intellij Idea创建项目看Frameworks代码 如android-30,方法关联方便查看
1.打开Intellij Idea,File->New->Project创建新工程2.New Project->Maven ,添加Project SDK选择JDK版本 如java version "1.8"3.填写项目名称如,Android304.找到对应的目标Android SDK source ,如android-30我的目录是 C:\Users\lixj\AppData\Local\Android\Sdk\sources\android-30不清.原创 2020-11-27 18:12:29 · 978 阅读 · 0 评论 -
Device owner调研
一.什么是Device owner?Device Owner 是在设备上以管理员身份运行的应用程序.此应用可以使用 DevicePolicyManager类中的编程方法来控制设备上的配置,安全性和其他应用程序。 可以将Device owner视为具有特殊权限的Device Admin。Android提供了三种设备管理方案,Device Administration(设备管理员), Profile Owner(配置文件所有者)和 Device Owner(设备所有者)。这三种权...原创 2020-10-24 01:32:14 · 4966 阅读 · 1 评论 -
我注册监听了系统的广播,为啥收不到广播呢?
问题:我注册了以下系统广播 ,为啥在Receiver中接受不到广播呢? <receiver android:name=".RebootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter>原创 2020-10-16 11:54:45 · 1140 阅读 · 0 评论 -
3.6.3新版本AndroidStudio报Could not resolve all artifacts for configuration:app:classpath等系列问题解决方法
最近因为换了个台式电脑,重新下载了最新的android studio ,2020年5月6号的3.6.3版本,结果编译工程和新建工程,都直接就报了以下错误:Could not resolve all dependencies for configuration ‘:classpath’.Could not resolve com.android.tools.build:gradle...原创 2020-05-07 10:17:23 · 9522 阅读 · 2 评论 -
Android SDK 下载-Android studio 2020
1.为了避免sdk到处找麻烦,我这边直接给你提供一个sdk云盘下载: https://pan.baidu.com/s/15GaoA5h9x4Rxmupm5mQTig提取码:3pmy2.将sdk下载下来解压,在Android studio 中添加该路径。(我这个适用window的)3.我这个sdk,有点老,知道Android 5.0,需要配置更新,勾选Force htt...原创 2020-03-09 20:27:50 · 2212 阅读 · 0 评论 -
小说阅读器类型分析与源码展示
作为一个资深小说迷和一个优秀的程序猿的我,最近一年都在研究小说阅读器,终于......。小说类型大致分三种:资源阅读型,本地文件阅读型,网络综合型。步步递进,我的学习过程也是这样的(文章最后有彩蛋!)1.首先资源阅读型,就是把一整部小说放进Asset,然后通过context.getAssets(),获取书本/** * package: com.example.luoyangco...原创 2018-11-21 19:44:53 · 2990 阅读 · 2 评论 -
RecyclerView缓存混乱(item复用混乱)
RecyclerView item复用混乱问题,我主要想记录一下。首先问题图示:问题描述:我这边实时刷新,缓存了第一章和第二章,缓慢滑动,下面每隔几十个item都会出现“已缓存”的标识,这边就复用混乱了。我刷新“已缓存”标识的代码如下: Boolean flag =bookShelfBean.getBookInfoBean().getChapterl...原创 2018-11-18 07:27:32 · 1503 阅读 · 0 评论 -
java 下载apk并安装-代码实例
public class MainActivity extends Activity { private File apkFile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a...转载 2018-10-16 15:39:03 · 6856 阅读 · 2 评论 -
java中的return与静态static
1,Java中return用于方法,两个作用: (1)返回方法指定类型的值(这个值总是确定的),也可以是对象 (2)方法的结束两种形式:(1)有返回类型 例如:return i; (2)无返回类型 return; 2.在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对...原创 2018-08-22 11:12:12 · 3055 阅读 · 0 评论 -
Android免费小说阅读器—程序员自己的阅读器,没广告,所有小说可搜索,专注阅读体验
个人小说阅读器,终于写完了,时隔不知道多少天了,做了大量的资源整合……极简风格,集成大部分小说网站,所有小说免费,且没有广告,专注小说阅读体验。喜欢看小说的朋友!可以找我要安装包,安装包链接:https://pan.baidu.com/s/1ooGAhY_dBPwdPoVxSPCStw 提取码:g18k我需要不断改善阅读体验,需要大家来鞭策,只是为了提高编程水平。如果有小说搜...原创 2018-11-20 20:39:51 · 12979 阅读 · 9 评论 -
github二次上传文件,分支文件上传,删除文件夹
看了太多GitHub入门教程,终于搞通了,乐在分享。部分参考:第一个GitHub项目https://blog.csdn.net/wangyan_z/article/details/79148059 git上传本地分支到github项目分支 https://blog.csdn.net/qq_27437967/article/details/71189571网上有很多github应用教程...原创 2018-11-16 10:49:51 · 1649 阅读 · 1 评论 -
AccessibilityServices检测与防御措施。
通过AccessibilityManager检测 or 禁止相关外挂的辅助模式开启 自定义TextView复写findViewsWithText方法,屏蔽文案检查 onTouch替换onClick,屏蔽点击事件 随机发送Event干扰 通过PackageManager检测 or 禁止相关外挂软件安装 ...转载 2018-08-23 13:38:45 · 960 阅读 · 0 评论 -
Root的原理介绍
谷歌的android系统管理员用户就叫做root。该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别的管理权限。我们root手机的过程也就是获得手机最高使用权限的过程。同时为了防止不良软件也取得root用户的权限,当我们在root的过程中,还会给系统装一个程序,用来作为运行提示,由用户来决定,是否给予最高权限。这个程序的...原创 2018-08-23 13:38:53 · 2883 阅读 · 1 评论 -
Xposed获取对象loadClass、获取方法getMethod、获取成员变量findfield
0、拿对象 classLoader.loadClass("com.ss.sys.ces.b.a"); formClass("com.ss.sys.ces.b.a") Class.forName(className)方法,内部实际调用的方法是 Class.forName(className,true,cla...原创 2018-08-23 13:39:12 · 12716 阅读 · 0 评论 -
java URLConnection对象上传和下载文件
上传文件的主要步骤:1.创建 URL 以及 URLConnection对象2.设置 URLConnection对象的连接参数,设置不使用缓存。设置 URLConnection对象的请求属性Content-Type 为multipart/form-data3.从连接对象中获取输出流4.从磁盘中获取文件输入流6.向连接对象的输出流中写出文件内容,每个文件内容使用风格符隔开7.所有文件都写...转载 2018-08-23 13:36:25 · 708 阅读 · 0 评论 -
Android请求网络有三种方式:HttpURLConnection、 HttpClient和OkHttpClient
大多数连接网络的 Android app 会使用 HTTP 来发送与接收数据。Android 提供了三种 HTTP client:HttpURLConnection、 HttpClient和OkHttpClient。都支持 HTTPS、流媒体上传和下载、可配置的超时、IPv6 与连接池(connection pooling)。 一、Java.net包中的HttpURLConnection...原创 2018-08-22 11:44:01 · 3298 阅读 · 0 评论 -
xposed检测原理分析 -案例某付宝、某音
一、1.支付宝的Xposed hook 检测原理: Xposed Hook 框架将Hook信息存储在fieldCache, methodCache,constructorCache 中,利用java 反射机制获取这些信息,检测Hook信息中是否含有支付宝App中敏感的方法,字段,构造方法。2.支付宝的SO检测原理: 检测进程中使用so名中包含关键"hack|inject|hook|call...转载 2018-08-22 11:25:01 · 6433 阅读 · 1 评论 -
反编译学习汇编的意义
个人经验,开始阅读汇编代码时结合源代码会更好理解些,毕竟C语言代码的可读性更强。理解一些简单的汇编代码段后,阅读更大量的汇编代码就会得心应手些。另外很多人都有疑问,如果有源代码的话,直接走读源代码不是更好吗,为什么还需要走读汇编代码?试想一下,一个千万行代码级别的产品,走读代码,该从哪开始?何况源代码中有很多宏定义,也有可能很多代码都不会被编译,从源代码看到的问题点可能实际根本不...转载 2018-08-22 11:03:05 · 1174 阅读 · 0 评论