搜索内容

包含标签:android 的文章
  • Android Studio出现Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to app
    其他

    Android Studio出现Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to app

    解决办法 :File -> Project Structure -> project  将gradle Version换成最新的即可
    admin 刚刚
  • Caused by: org.gradle.api.GradleException: The current Gradle version 5.4.1 is not compatible with t
    其他

    Caused by: org.gradle.api.GradleException: The current Gradle version 5.4.1 is not compatible with t

    解决办法 :File -> Project Structure -> project  将gradle Version换成最新的即可
    admin 刚刚
  • 自定义View-view的执行方法
    其他

    自定义View-view的执行方法

    @SuppressLint("HandlerLeak") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("tag","onCreate"); setContentView(R.layout.activity_main); } public class DemoView extends View { public DemoView(Context context) { super(context); Log.i("tag", "---- public DemoView(Context context) ----"); } public DemoView(Context context, @Nullable AttributeSet attrs) {
    admin 刚刚
  • APK加固+重签名后,在Android 12手机上解析错误,无法安装的解决办法
    其他

    APK加固+重签名后,在Android 12手机上解析错误,无法安装的解决办法

      之前使用腾讯云免费加固后,再用jarsigner重签名。这在Android 11及以下的系统中没有出现过问题。但在Android 12版本的手机上会出现无法解析安装的情况。   初步判断是因为签名出了问题。参考了腾讯云社区的文章后,应该是需要使用zipalign工具进行对齐操作,再使用apksigner工具重签名。zipalign和apksigner都由Google官方提供。在Android SDK/build-tools/SDK版本/目录。   之前的签名语句为: jarsigner -verbose -keystore 密钥库文件 -storepass 密码 -signedjar 生成的新APK文件 旧APK文件 密钥库别名   现在的方法为: 1、对齐: zipalign -p -f -v 4 未对齐APK文件 生成的APK文件 对齐后可以进行验证: zipalign -c -v 4 要验证的APK文件 2、签名: apksigner sign --ks 密钥库文件 --ks-key-alias 密钥库别名 --k
    admin 今天
  • Android中Crash的记录和防护
    其他

    Android中Crash的记录和防护

    Android中Crash的记录和防护 1、崩溃的记录: 创建自定义UncaughtExceptionHandler处理异常 01.定义并设置DefaultUncaughtExceptionHandler 02.存在Throwable时记录异常信息saveCrashInfoToFile 03.异常情况killProcess进程,App强制退出 /** * 异常处理捕获类 */ @SuppressLint("StaticFieldLeak") object CrashHandler : Thread.UncaughtExceptionHandler { private val mLogFormat = SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.getDefault()) var path = "/sdcard/corelog/C
    admin 今天
  • Recyclerview的局部刷新,只刷新修改的地方
    其他

    Recyclerview的局部刷新,只刷新修改的地方

    第一步:activity中,设置数据时需要做的   private boolean isRefreshItem;//是否需要局部杀心 if (isRefreshItem){ //局部刷新 changeReocdrAdapter.setDataItem(recordListBan, position); //"qwe"是标志位 必须要的 changeReocdrAdapter.notifyItemChanged(position,"qwe"); }else { changeReocdrAdapter.setData(recordListBan); changeReocdrAdapter.notifyDataSetChanged(); } 第二步:adapter中需要做的 //刷新全部 adpter接收数据 public void setData(List
    admin 今天
  • 值得推荐的:架构师们是怎么阅读 Android 系统源码的?
    其他

    值得推荐的:架构师们是怎么阅读 Android 系统源码的?

    在学习Android过程中,会使用到很多开源框架,而使用时对框架的实现方式应有一定的了解,这个过程最好的方式就是阅读源码,毕竟源码说明一切。但开源框架很多,不时会有新的出现,而且对一些通用框架来说,一般代码量非常庞大,所以正确的阅读姿势很重要。一般来说有下面几个要点: 明确阅读源码的目的是对整体有个了解而非细节,对开源框架来说就是先找这个框架的特点,其他相同业务框架相比的优点和不足,这也是选择的考虑的重点; 厘清一个框架的核心点和辅助点; 最重要的是总结相似框架的架构模式与习惯,慢慢的就会有一套自己的阅读套路。那我们如何系统的学习呢? 学习目录 1.深入解析微信 MMKV 源码 2.深入解析阿里巴巴路由框架 ARouter源码 3.深入解析 AsyncTask 源码(一款Android 内置的异步任务执行库) 4.深入解析 Volley 源码(一款 Google推出的网络请求
    admin 今天
  • Android插件化开源框架
    其他

    Android插件化开源框架

    https://github.com/asLody/VirtualApphttps://github.com/xxxyanchenxxx/VirtualAppExhttps://github.com/DroidPluginTeam/DroidPluginhttps://github.com/Qihoo360/RePluginhttps://github.com/ManbangGroup/Phantomhttps://github.com/didi/VirtualAPKhttps://github.com/Tencent/Shadow
    admin 今天
  • 通用 Intent
    其他

    通用 Intent

    通用 Intent Intent 用于通过描述您想在某个 Intent 对象中执行的简单操作(如“查看地图”或“拍摄照片”)来启动另一应用中的某个 Activity。这种 Intent 称作隐式 Intent,因为它并不指定要启动的应用组件,而是指定一项操作并提供执行该操作所需的一些数据。 当您调用 startActivity() 或 startActivityForResult() 并向其传递隐式 Intent 时,系统会将 Intent 解析为可处理该 Intent 的应用并启动其对应的 Activity。如果有多个应用可处理 Intent,系统会为用户显示一个对话框,供其选择要使用的应用。 本页面介绍几种可用于执行常见操作的隐式 Intent,按处理 Intent 的应用类型分成不同部分。此外,每个部分还介绍如何创建 Intent 过滤器来公布您的应用执行相应操作的能力。 注意:如果设备上没有可接收隐式 Intent 的应用,您的应用将在调用 startActivity() 时崩溃。如需事先验证是否存在可接收 Intent 的应用
    admin 今天
  • 如需确认重启模式
    其他

    如需确认重启模式

    如需确认重启模式, 可从下面两种log中获取: 1.重启后的slog中的misc/cmdline.log ( 或者adb登入后查看proc/cmdline)中的关键字androidboot.mode。 2.ylog中snapshot/phone.info中的ro.bootmode。 2.1具体从关键字来做模式判断方法如下:unknown,special或者没有值,则为正常开机重启,上2.2层触发的重启(如android看门狗重启,systemserver重启,第三方应用发起的重启)或者手动长按power键重启。 2.3panic/ap wdgreboot 等值则是kernel发生问题(包括按下组合键)的重启,硬狗重启。 从重启前后kernel log原始时间戳,如[852605.423283]的连续性上也可以进一步验证,如果它们是连续的,则是上层重启,因为kernel重启的话会重置时间戳。
    admin 今天
  • Android 10 固定MAC地址
    其他

    Android 10 固定MAC地址

    device/mediatek/system/common/overlay/wifista/frameworks/base/core/res/res/values/ device/mediatek/common/overlay/wifista/frameworks/base/core/res/res/values/ - true + false
    admin 今天
  • Android单独打开和关闭BLE
    其他

    Android单独打开和关闭BLE

    1.常规操作经典蓝牙 最近有一个功能需要使用蓝牙BLE,如果在使用之前蓝牙是关闭的状态,需要先打开蓝牙,并且在使用完之后,需要把蓝牙关闭。 我们的功能是在后台服务执行,最开始使用常规的方式判断并打开蓝牙: boolean isEnableBefor = bluetoothAdapter.isEnabled(); //判断蓝牙是否打开 if (!isEnableBefor) { bluetoothAdapter.enable(); //使用常规方式打开蓝牙 } 这个时候会打开整个经典蓝牙,然后用户界面也会感知到蓝牙的打开;如果用户正在使用,然后这个时候功能执行完毕关闭蓝牙,会让用户觉得体验很不友好,甚至认为这是个程序设计上的问题。 2.BLE和经典蓝牙的关系 于是决定本功能模块单独使用蓝牙BLE,而不去操作经典蓝牙,这样就不会影响到设置模块对蓝牙开关的操作逻辑了。
    admin 今天
  • linux socket网络编程:fcntl select(多个客户端连接服务器端情形)的代码
    其他

    linux socket网络编程:fcntl select(多个客户端连接服务器端情形)的代码

    如下的资料是关于linux socket网络编程:fcntl select(多个客户端连接服务器端情形)的代码,希望能对大家有所好处。 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define SERVPORT 3333 #define BACKLOG 10 #defin
    admin 今天
  • Kernel 日志缓存大小修改
    其他

    Kernel 日志缓存大小修改

    需要增大log buffer --- a/include/linux/ratelimit.h +++ b/include/linux/ratelimit.h @@ -7,7 +7,7 @@ #include #define DEFAULT_RATELIMIT_INTERVAL (5 * HZ) -#define DEFAULT_RATELIMIT_BURST 10 +#define DEFAULT_RATELIMIT_BURST 200000
    admin 今天
  • MTK 平台system/lib 中添加so库依赖失败
    其他

    MTK 平台system/lib 中添加so库依赖失败

    需要添加白名单 system/core/rootdir/etc/public.libraries.android.txt + xxxx.so
    admin 今天
  • Android ko文件拷贝
    其他

    Android ko文件拷贝

    device/.../device.mk下: PRODUCT_COPY_FILES += \         kernel/drivers/input/touchscreen/gt9xx/gt.ko:$(TARGET_COPY_OUT_VENDOR)/lib/gt.ko
    admin 今天
  • Java获取本机ip地址的代码
    其他

    Java获取本机ip地址的代码

    将做工程过程经常用的一些内容片段做个收藏,如下内容是关于Java获取本机ip地址的内容。 InetAddress addr = InetAddress.getLocalHost();
    admin 今天
  • Chromium DNS流程分析之SystemHostResolverCall 域名解析调用堆栈
    其他

    Chromium DNS流程分析之SystemHostResolverCall 域名解析调用堆栈

    chromium56:SystemHostResolverCall域名解析调用堆栈 概述 在Android平台上,Chromium主要支持三种DNS机制,分别为基于系统调用的getaddrinfo(),自己构造数据包并处理请求的AsyncDNS,以及基于TCP的DNS协议。本文暂时仅分析前两者,事实上最后一项是在普通DNS请求失败时所进行的fallback,没有什么特殊的地方。 核心思路 首先,DNS解析的实际操作由HostResolverImpl::Job::Start()函数发起,该函数所属的类继承自PrioritizedDispatcher::Job以及HostResolverImpl::DnsTask::Delegate。由这个多重继承可见,HostResolverImpl::Job实际上具备两种属性:一方面,它是一个能够被调度执行的任务实体;另一方面,它继承了DnsTask的委托接口,用于执行实际的请求工作。通用的抽象Job类主要包含一个Start()方法,用于启动任务。而对于DNS请求这项任务,其Start()方法也
    admin 今天
  • Android 11 开机引导定制
    其他

    Android 11 开机引导定制

    若要定制自定义的开机向导,则只需要在Activity中加入自定义的内容,再调用finishSetupWizard()方法把它关掉即可。 /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed t
    admin 今天
  • 铁硅铝磁芯和铁氧体磁芯要怎么选择gujing
    其他

    铁硅铝磁芯和铁氧体磁芯要怎么选择gujing

    编辑:谷景电子 经常看我们文章的小伙伴知道,关于电感不仅有很多重要的参数,还对使用的原材料有重要要求,只有使用好的材料才能生产出好的产品。磁芯对任何电感元器件来说都是非常重要的,在之前我们也曾简单了解过几种电感磁芯,如铁氧体磁芯、锰锌、镍锌、铁硅铝等,那么关于铁氧体磁芯和铁硅铝磁芯在使用的时候要怎么选择呢? 在之前我们介绍的几种磁芯中,他们是电感元器件中常用的磁芯,如果给他们进行排列的话,顺序依次是镍锌,锰锌,然后就是铁氧体磁芯。其实铁氧体磁芯包括铁硅铝磁芯,然后就是非晶磁带的纳米晶磁环。这几种电感磁芯是在生产中比较常用的磁芯类型。 铁硅铝磁芯它是属于铁铁氧体磁芯里面的,是铁氧体磁芯的一类。 铁氧体磁芯具有: 1、高渗透性 2、良好的温度特性,具有较宽的温度适用范围 3、低衰减率。 铁氧体磁芯电感主要用途有:信号处理、功率转换、EMI抑制、大磁芯的应用等 铁硅铝磁芯的特点有: 1、铁硅铝的磁通密度是铁氧
    admin 今天
  • 组件化学习(3)ARouter中的Path和Group注解
    其他

    组件化学习(3)ARouter中的Path和Group注解

    这里就不对ARouter进行全面分析了,而是把Group和Path的思想抽象出来理解 1.介绍下Group和Path 在上一篇文章中也提到过,Group就是组,Path就是组里面具体的类。在ARouter的api模块中,有针对Group和Path的接口ARouterGroup和ARouterPath。如下(这里只是举个例子,并不一定真有同名接口,但是思想是一样的) public interface ARouterGroup { Map> getGroupMap(); } ARouterGroup接口: 有一个Map集合,key,就是各个组名,比如app,common等等。value就是每个组名对应的详情类。其实就是实现了ARouterPath接口的类.ARouterPath接口: public interface ARo
    admin 今天
  • 【最新版win10 adb环境变量配置】
    其他

    【最新版win10 adb环境变量配置】

    win10配置adb环境变量 一、找到安装好的adb绝对路径 高级系统设置—环境变量 右键—属性—高级系统设置—环境变量 找到系统变量—Path 点击进去 把刚才的adb路径复制到上面,新建—复制adb路径到上面 最后,windows+R—输入cmd—进入黑窗口—输入【adb version】查看版本号,配置成功。
    admin 今天
  • 秋招开发/技术岗常见知识点汇总
    其他

    秋招开发/技术岗常见知识点汇总

    本人目前大四,是一名双非普通二本的计算机专业学生,秋招斩获了10+份offer,投递过上百家公司,有着丰富的笔试、面试经验;我投递的岗位主要有:客户端研发工程师(C++、java)、后端开发工程师(python、java),游戏研发工程师(C/C++)、Android开发工程师(java)、软件测试工程师;这几类岗位基本都拿了offer,这次,我将印象深刻的、比较常见的知识点/试题进行一次汇总,希望警醒自己,也希望给你们助助力,为以后做好准备!!不罗嗦了,开始~ 1.笔试汇总: C/C++类: 这里常考的知识点:1. 求结构体的大小,sizeof(结构体); 例题: struct Student { int i; int j; char c; } ; int main() { printf("%d\n",sizeof(Student)); return 0; } 2. C++多继承相关知识点考查,给一段C++程
    admin 今天
  • Google上架问题
    其他

    Google上架问题

    2021.8以后必须上架aab格式的包,上架时老提示app bundle 签名无效,下面介绍最有效的方法 1,非常重要,打包前项目build.gradle,一定不要配置签名,否则google不认你的签名 2,打包选择aab打包方式就可以了 3,上架选择google签名计划,让Google管理签名 4,然后就可以传aab包了,补充完相关信息 以上就是新aab包上架过程,遇到问题的小伙伴可以试下这种方法。
    admin 今天
  • Jetpack Compose 之 Row
    其他

    Jetpack Compose 之 Row

    基本使用 Row纵向线性布局,类似于LinearLayout设置为android:orientation="horizontal"时的效果: Row() { Text(text = "千里之行,") Text(text = "始于足下") } 上方两个Text将按照垂直排列布局,Row默认大小为内部子控件的大小,类似于wrap_content 大小调整 可以使用modifier来设置Row的大小: Row(modifier = Modifier .height(200.dp) .width(200.dp)) { Text(text = "千里之行,") Text(text = "始于足下") } 上面的代码设置了Row的大小为 200dp * 200dp Row( modifier = Modifier.size(300.dp, 2
    admin 今天
  • " alt="【萝卜前端打包教程v4.18版】Android Studio安卓前端编译视频教程/AS4.2.3版/最全的原生java打包app教程">
    其他

    【萝卜前端打包教程v4.18版】Android Studio安卓前端编译视频教程/AS4.2.3版/最全的原生java打包app教程

     【萝卜前端打包教程v4.18版】Android Studio安卓前端编译视频教程/AS4.2.3版/最全的原生java打包app教程-紫咖啡小站紫咖啡小站-【萝卜前端打包教程v4.18版】Android Studio安卓前端编译视频教程/AS4.2.3版/最全的原生java打包app教程https://bbs.y1778.top/576.html  视频教程在此: 【萝卜前端打包教程v4.18版】Android Studio安卓前端编译视频教程/AS4.2.3版/最全的原生java打包app教程
    admin 今天
  • " alt="AgentWeb 移除com.alipay 以避免华为应用商店上线处理隐私协议相关">
    其他

    AgentWeb 移除com.alipay 以避免华为应用商店上线处理隐私协议相关

    项目使用原生 内嵌h5模式的开发  所以使用基于webview的AgentWeb  AgentWeb 是一个基于的 Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活, 在今天升级2021年12月1升级高德地图 新版隐私相关sdk库 , 就开开心心的提交上线 。  过了一天 ,就出现了  由于com.amap.api 是使用了地图,com.aliyun使用了阿里云的东西 ,所以不用管, 让法务去操心。但 com.alipay项目中没有使用在排查项目没有直接使用 或引用 com.alipay相关的包  所以通过反编译查看项目 发现确实有这个包,所以就从github下载AgentWeb项目 4.1.9版本源码 将alipaySdk-20180601.jar从项目中移除 并将DefaultWebClient 中的isAlipay方法直接返回false 然后重新打了aar包 
    admin 今天
  • RK3399 android7.1 打包固件出现问题
    其他

    RK3399 android7.1 打包固件出现问题

    1、问题点 hcc@bogon:~/ops_rochchip/ops-rk3399/rk3399insdustry$ ./mkimage.sh TARGET_BOARD_PLATFORM=rk3399 TARGET_PRODUCT=rk3399_all TARGET_HARDWARE=rk30board TARGET_BUILD_VARIANT=userdebug BOARD_SYSTEMIMAGE_PARTITION_SIZE=1610612736 BOARD_USE_SPARSE_SYSTEM_IMAGE=true HIGH_RELIABLE_RECOVERY_OTA=false TARGET_BASE_PARAMETER_IMAGE==device/rockchip/common/baseparameter/baseparameter_fb720.img system filesysystem is ext4 create boot.img without kernel... done. create recovery.img wit
    admin 今天
  • Android 各版本对应的SDK版本
    其他

    Android 各版本对应的SDK版本

    SDK简介(以下简介来源于SDK简介): (软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。 软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合。 软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的 SDK。它可以简单的为某个程序设计语言提供应用程序接口 API 的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。 为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构建SDK 以鼓励人们使
    admin 今天
  • Android:okhttp发送请求并且添加token至header头(post+get)
    其他

    Android:okhttp发送请求并且添加token至header头(post+get)

    拦截器没搞懂就先搞这个法子暂时先写到请求里面,不然api接口啥都用不了,其实也并不是特别麻烦,后续要改,不考虑使用拦截器的话,可能要使用到sqlite数据库,emmmm,想想还是别这么干。 1,post + header  public void postTest(){         OkHttpClient client = new OkHttpClient();         //post请求         FormBody formBody = new FormBody.Builder()                 .add("event_id","33")                 .build();         Request request = new Request.Builder().url(DecryptionAddress+"app/event/accept").                 addHeader("Token","服务器获取的token").post(formBody).bui
    admin 今天
  • OKHttp源码分析(一)
    其他

    OKHttp源码分析(一)

    目录 OKHttp的优缺点 OKHttp的主流程 OKHttp核心类分析 OKHttp涉及到的设计模式 OKHttp的优缺点 优缺点是比较而言,对比目前的网络框架 框架名称优点        缺点适用场景OKHttp 1)Http高性能库,属于底层网络框架 2)内置连接池,支持连接复用 3)通过Gzip压缩响应体数据 4)支持同步阻塞和异步阻塞两种方式 使用时需要进一步封装重量级网络交互场景Volley1)基于 HttpUrlConnection,是封装后的网络框架。 2)可扩展性好,可支持HttpClient、HttpUrlConnection和Okhttp 不适合大的下载或者流式传输操作,数据方法放到byte[]数组里,消耗内存 适合轻量级网络交互,网络请求频繁,传输数据量小,不适合做文件(音视频)操作(上传/下载)Retrofit 1)底层基于okhttp,属于封装后的网络框架 2)封装好,效率高,简洁易用 3)支持RxJava 1)扩展性差 2)项目中常常RxJava+Retrofit+Okhttp组合,来搭建网络
    admin 今天
  • Android端WebRTC本地音视频采集流程源码分析
    其他

    Android端WebRTC本地音视频采集流程源码分析

    WebRTC源码版本为:org.webrtc:google-webrtc:1.0.32006 本文仅分析Java层源码,在分析之前,先说明一下一些重要类的基本概念。 MediaSource:WebRTC媒体资源数据来源,它有两个子类:AudioSource(音频资源)、VideoSource(视频资源);MediaStreamTrack:媒体资源轨,一个MediaStreamTrack对应一个MediaSource,创建媒体轨需要MediaSource,同样,它也有两个子类:AudioTrack(音频轨)对应AudioSource、VideoTrack(视频轨)对应VideoSource;MediaStream:媒体流,一个媒体流可以添加多条AudioTrack和VideoTrack,一般来说我们对应分别只添加一条。 在使用WebRTC进行音视频通话时,需要构建一个PeerConnectionFac
    admin 今天
  • Android基础之四大组件(Activity | Service | Broadcast Receiver | Content Provider)详解
    其他

    Android基础之四大组件(Activity | Service | Broadcast Receiver | Content Provider)详解

    目录 四大组件 Activity(活动) Service(服务) Broadcast Receiver(广播接收者) Content Provider(内容提供者) 四大组件 Activity(活动) 简介 Activity相当于一个页面,可以在Activity中添加各种控件,例如Button,TextView等。一个Android程序(APP)可以由多个Activity组成提供了与用户交互的可视化界面(GUI)Android中使用栈task来存储Acticity,及先进后出,栈顶及我们所看到的页面 生命周期 onCreat()--->onStart()--->onResume()--->onPause()--->onStop()--->onDestory()onStop()--->onRestart()--->onStart()图解 ​ 启动模式(4种) Standard(默认启动模式)
    admin 今天
  • Android 渠道游戏 – 聚合SDK
    其他

    Android 渠道游戏 – 聚合SDK

    分享一下优秀的文章 Android 游戏 - 聚合SDK
    admin 今天
  • 【无标题】
    其他

    【无标题】

    spannableStringBuilder用法整理 spannableStringBuilder 用法详解: SpannableString ss = new SpannableString("红色打电话斜体删除线绿色下划线图片:."); //用颜色标记文本 ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2, //setSpan时需要指定的 flag,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括). Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //用超链接标记文本 ss.setSpan(new URLSpan("tel:4155551212"), 2, 5,
    admin 今天
  • rk3399 Android9.0 ota升级失败
    其他

    rk3399 Android9.0 ota升级失败

    rk3399 Android9.0 ota升级失败 问题:在rk3399 Android9.0 项目中需要 ota 功能,user版本编译完ota升级包后,在同版本整包升级时遇到如下问题: 抓到的logcat内容如下: 1044 2343 D RKUpdateService: doesImageMatchProduct(): start verify package , imagePath = /mnt/media_rw/9704-7E5A/update.zip 250 326 D AudioHardwareTiny: do_out_standby,out = 0xee550000,device = 0x2 250 326 D alsa_route: route_set_controls() set route 24 250 326 D AudioHardwareTiny: close d
    admin 今天
  • Android 用 ListView 实现倒计时列表功能
    其他

    Android 用 ListView 实现倒计时列表功能

     MyAdapter.java public static class MyAdapter extends BaseAdapter { private List mDatas; private Context mContext; //用于退出 Activity,避免 Countdown,造成资源浪费。 private SparseArray countDownCounters; public MyAdapter(Context mContext, List mDatas) { this.mContext = mContext; this.mDatas = mDatas; this.countDownCounters = new SparseArray<>(); } /** * 清空当前 CountTimeDown 资源 */ pub
    admin 今天
  • Android DataBinding 从入门到进阶,看这一篇就够
    其他

    Android DataBinding 从入门到进阶,看这一篇就够

    前言 DataBinding 是谷歌官方发布的一个框架,顾名思义即为数据绑定,是 MVVM 模式在 Android 上的一种实现,用于降低布局和逻辑的耦合性,使代码逻辑更加清晰。MVVM 相对于 MVP,其实就是将 Presenter 层替换成了 ViewModel 层。DataBinding 能够省去我们一直以来的 findViewById() 步骤,大量减少 Activity 内的代码,数据能够单向或双向绑定到 layout 文件中,有助于防止内存泄漏,而且能自动进行空检测以避免空指针异常 启用 DataBinding 的方法是在对应 Model 的 build.gradle 文件里加入以下代码,同步后就能引入对 DataBinding 的支持 android { dataBinding { enabled = true } } 一、基础入门 启用 DataBin
    admin 今天
  • 【Android】官网下载Android Studio下载不了
    其他

    【Android】官网下载Android Studio下载不了

    官网地址:Download Android Studio and SDK tools | Android Developers 点击下载后显示: 解决办法: 右上角 中文-简体 改成 ENGLISH 即可 再次点击下载就可以下载了!!!神一样的操作!!! 我下载是这么做的,是可以的。当我下载完成关闭浏览器,再次尝试这样操作,还是下载不了~感觉有用,但不是一直有用,大家可以尝试一下~ ———————————————— 版权声明:本文为CSDN博主「心脏dance」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lgz0921/article/details/115952485
    admin 今天
  • URLRequestHttpJob::Start中http请求数据填充堆栈
    其他

    URLRequestHttpJob::Start中http请求数据填充堆栈

    chromium56 二次刷新到URLRequestHttpJob::Start堆栈。  资源加载到URLRequestHttpJob::Start堆栈:    
    admin 今天
  • Android开发之百度地图显示当前定位
    其他

    Android开发之百度地图显示当前定位

    目录 前言  一、项目内容 二、实现过程 1.注册和获取秘钥 获取SHA1  获取开发者秘钥  2.Android Studio配置  下载SDK本地依赖  添加so文件 3.实现显示定位功能 配置Manifest文件  在布局文件中添加地图容器 动态申请权限  构造地图数据 开启地图的定位图层并通过LocationClient发起定位  管理各部分的生命周期  三、结果展示   前言  课堂根据百度开发文档实现了简单地图显示功能,本篇文章增加了显示当前定位的功能。 一、项目内容 根据官方文档,开发百度地图定位APP,显示当前位置坐标 二、实现过程 1.注册和获取秘钥 获取SHA1 进入控制台,进入到C:\用户\用户名\.android文件夹下,执行命令keytool -list -v -keystore debug.keystore,输入口令android,即可得到SHA1  获取开发者秘钥 登陆百度账号后,进入API控制台,点击“创建应用”开始申请开发密钥  填写应用
    admin 今天
  • AIDL和HIDL
    其他

    AIDL和HIDL

    AIDL概述 aidl是常用的android IPC方式,本文将根据一个demo来解析下AIDL的原理。 为了便于读者理解,本文不会探究Binder的实现细节,可以认为Binder在此文的分析中被看做是一个“黑盒”。 有一定经验的读者可以直接到文末看总结,最终流程图如下: 基本步骤如下: Client通过ServiceConnection获取到Server的Binder,并且封装成一个Proxy。 通过Proxy来同步调用IPC方法。同时通过Parcel将参数传给Binder,最终触发Binder的transact方法。 Binder的transact方法最终会触发到Server上Stub的onTransact方法。 Server上Stub的onTransact方法中,会先从Parcel中解析中参数,然后将参数带入真正的方法中执行, 然后将结果写入Parcel后传回。
    admin 今天
  • 不小心把Android Studio的文件夹删了, Android Studio最新版的安装教程图解
    其他

    不小心把Android Studio的文件夹删了, Android Studio最新版的安装教程图解

    1 Android Studio 官网 Download Android Studio and SDK tools  |  Android Developers   2 在你常用的安装软件文件夹(tools)下,新建三个子文件夹,Android Studio 、 Android SDK、Android Project  3 双击刚刚下载的文件 不知道我电脑卡还是怎么回事,等好久才跳出这个窗口。。。点击next>              ​​  4 跑一下自己的项目 总结 不小心误删了Android Studio文件夹也没事,重新装回来了就好,但是别不小心把项目文件夹删了,因为如果你没有push,你本地commit就都没了。。。。所以清空回收站的操作一定要谨慎啊! 参考资料 Android Studio 3.3.2 正式版的安装教程图解 -  https://www.jb51.net/article/180828.htm
    admin 今天
  • Kotlin官方文档学习2—-集合的概念
    其他

    Kotlin官方文档学习2—-集合的概念

    Java中,集合是最常用的数据结构。List、Map、Set三大集合类,在Kotlin中也有对应的 1 List 1.1 创建List集合 创建List集合的方式有listOf、mutableListOf,其中listOf不具备写操作,只能初始化其内容不可改变;mutableListOf具备写操作的能力,可以通过add添加到集合中元素 var mutableListOf = mutableListOf() mutableListOf.add(1) mutableListOf.add(2) mutableListOf.add(3) var listOf = listOf(1, 2, 3) listOf.add() //不能执行写操作 通过emptyList可以创建一个空集合 var emptyList = emptyList() 1.2 集合的遍历 通过in、forEa
    admin 今天
  • Android 编译速度提升黑科技 – RocketX
    其他

    Android 编译速度提升黑科技 – RocketX

    怎么做编译优化,当时说了个方案,就是编译时将所有的模块依赖修改为 aar,然后每次编译将变动的模块改成源码依赖,同时编译完成再将修改模块上传为 aar,这样可以始终做到仅有最少的模块参与源码编译,从而提升编译速度。 当然说起来轻松,做起来没有那么容易,终于有位小伙伴将上述描述开发成一个开源方案了,非常值得大家学习和借鉴。 1.背景描述 在项目体量越来越大的情况下,编译速度也随着增长,有时候一个修改需要等待长达好几分钟的编译时间。 基于这种普遍的情况,推出了 RocketX ,通过在编译流程动态修改项目依赖关系, 动态 替换 module 为 aar,做到只编译改动模块,其他模块不参与编译,无需改动原有项目任何代码,提高全量编译的速度。 2.效果展示 2.1、测试项目介绍 目标项目一共 3W+ 个类与资源文件,全量编译 4min 左右(测试使用 18 年 mbp 8代i7 16g)。 通过 Ro
    admin 今天
  • 【无标题】
    其他

    【无标题】

    1. 概述 Android插件化架构,目前第三方的框架比较多,早几年自己用的是DL框架,这个框架的源码比较简单主要用的是静态代理。如果我们自己要去写一个插件化架构框架那要解决的问题会分为几个方面,类的加载,资源和布局的加载,广播的管理方式,Activity的加载和生命周期管理,Service的插件化,ContentProvider的插件化等等等等,反正加载一个没有运行的app到主程序,需要解决的问题基本就这么多,如果能够一一解决那么就可以实现插件化了。   内涵段子项目部分我们实现几个,然后介绍一个360开源框架DroidPlugin原理一致,后面我们再一一实现,那么这一期实现什么呢?我们需要启动插件APP那么就需要启动里面的Activity,这些Activity事先是不会在主工程的AndroidManifest.xml中配置,启动一个没有注册的Activity肯定会报错,我们是否可以想个办法去绕过系统的检测,让没有在AndroidManifest.xml中配置的Activity照样可以启动呢?   看源码的时候我们其实时常强调一定要带着思想
    admin 今天
  • AI剪辑和自定义UI,打造更智能的剪辑体验
    其他

    AI剪辑和自定义UI,打造更智能的剪辑体验

    为满足开发者构建高效的应用内视频编辑能力,7月的HMS Core 6.0 推出了视频编辑服务(Video Editor Kit),一站式的视频处理能力获得了积极反响。同时,我们也关注到开发者需要集成丰富多样、生动有趣的视频编辑功能,满足用户的个性化需求。因此本次6.2.0版本,我们为大家带来了两大变化。 多种AI能力,打造更智能剪辑体验 华为视频编辑服务新增人物追踪、一键染发、AI 着色、专属滤镜、动态照片等AI算法,为开发者提供更智能的应用剪辑功能,让用户轻松实现电影级特效创作。比如,人物追踪可以自动识别视频目标人物,锁定中心位,轻松打造特定人物的主角视频。旅游出行场景下,用户在景区拍摄的视频往往背景杂乱、人员众多。在剪辑时使用人物追踪功能,就可以稳站“C位”,无惧纷杂。 专属滤镜可以一键复刻心仪图片的滤镜风格,实现与心仪图片相同的滤镜效果,营造满满氛围感。 一键染发,用户手指轻轻一点,即刻切换多变
    admin 今天
  • Android奇淫巧技—-Android Studio模拟器将应用变成system app
    其他

    Android奇淫巧技—-Android Studio模拟器将应用变成system app

    1.前言 你从来不知道为什么会有这么多神奇的需求,如果再Android板子没下来的时候,又要开发app.而有些API又在sysytem App下才能有用的话.模拟器是一个快速开发的方式… 保证你下载的模拟器后面不可以是Google PLAY,至少是Google APIS,不然root失败 2.签名 工具栏.Build->Generate Signed Bundle or APK 选择APK进入 PS:我也不知道这步要不要,但是我觉得这步是为了保证我的app唯一 create New 后,创建一个新的签名 第一行的password是数字证书密码. 第二行Alias:是指定数字证书的别名. 剩下的是个人信息,自行填写就是了.点击ok 选择个人需求是debug or release版本签名以及还是对整个apk进行签名l 生成证书后,得到一个.jks文件 然后通过build.gradle文件配置签名. andr
    admin 今天
  • Android WebView 加载富文本
    其他

    Android WebView 加载富文本

    String introduce=data webView.getSettings().setBuiltInZoomControls(true) webView.setWebViewClient(WebViewClient()) webView.loadDataWithBaseURL(null, introduce, "text/html", "utf-8", null)
    admin 今天
  • ReactNative图片自适应高度
    其他

    ReactNative图片自适应高度

    import React, { useState, useEffect } from 'react'; import { Image } from 'react-native'; export default ({ source = {}, style = {}, width = 0 }) => { const [height, setHeight] = useState(100); useEffect(() => { if (source.uri) { // 网络图 Image.getSize(source.uri, (w, h) => { setHeight((width * h) / w); }); } else { // 本地图 const result = Image.resolveAssetSour
    admin 今天