魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
Android
Android

Android中使用System的getProperty()方法及获取Android内核版本信息

java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java.vendor.url Java供应商的 URL java.home Java安装目录 java.vm.specification.version Java虚拟机规范版本 java.vm.specification.vendor Java虚拟机规范供应商 java.vm.specification.name Java虚拟机规范名称 java.vm.version Java虚拟机实现版本 java.vm.ven…

2019年4月15日 0条评论 9146点热度 0人点赞 daozi 阅读全文
Android

Android流行的热更新方案

1. 前言 2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到底采用哪种方案,是开发者比较头疼的问题。本文希望通过介绍QQ空间补丁、Tinker以及基于AndFix的阿里百川HotFix技术的原理分析和横向比较,帮助开发者更深入了解热修复方案。 2. 技术背景 2.1 正常开发流程 在正常软件开发流程中,线下开发->上线->发现bug->紧急修复上线…

2018年7月16日 0条评论 10580点热度 0人点赞 daozi 阅读全文
Android

Android动态编译技术:Plugin Transform Javassist

1. 前言 动态编译技术在开源框架中的应用非常的广泛,现在市面上的插件化框架,热修复框架几乎都使用了动态编译技术,原理几乎都是在编译期间动态的在class文件中注入代码或者或修改。那就让我们来了解一下这高大上的技术吧。 2. 揭开动态编译的神秘面纱 揭开动态编译的神秘面纱只需三步: 自定义Gradle插件 介绍Transform API 及 实现步骤 实现在编译的过程中操作.class文件,对原有代码或者说逻辑进 行一些处理,修改原class代码和动态生成java类 3. 案例demo 插件目录结构: 3.1 自定…

2018年7月16日 0条评论 9770点热度 0人点赞 daozi 阅读全文
Android

Android中的线程和线程池

前言 线程在Android中是一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作。由于Android的特性,如果在主线程中执行耗时操作那么就会导致程序无法及时地响应,因此耗时操作必须放在子线程中去执行。 在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制的产生,并且线程的创建和销毁都会有相应的开销。档系统中存在大量的线程时,系统会通过时间片轮转的方式调度每个线程,因此线程不可能做到绝对的并行,除非线程数量…

2018年7月5日 0条评论 5266点热度 0人点赞 daozi 阅读全文
AndroidNN

Android神经​​网络API(NNAPI)

原文地址:https://developer.android.com/ndk/guides/neuralnetworks/index.html 以下为翻译内容: 注意:Neural Networks API可用于Android 8.1及更高版本的系统映像。头文件在最新版本的NDK中可用。我们鼓励您通过Android 8.1 Preview问题跟踪器向我们发送反馈。 Android神经​​网络API(NNAPI)是一种Android C API,专为在移动设备上运行机器学习计算密集型操作而设计。NNAPI旨在为构建和…

2018年4月11日 0条评论 8706点热度 0人点赞 daozi 阅读全文
Android

Android面试题19–Android事件分发机制

Android 的事件分发流程:Activity -> ViewGroup -> View 即:1个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到 View。 如果事件不被中断,整个事件流向是一个类U型图,我们来看下这张图: 可以看出 android的事件传递机制是责任链模式,如果自己能处理就拦截下来自己处理,如果自己处理不了或者不确定就传递给下一个对象。 事件处理方式:拦截、分发、消费 类型 相关方法 Activity ViewGroup View 事件分发 disp…

2018年3月8日 0条评论 7028点热度 0人点赞 daozi 阅读全文
Android

Android O(Android 8.0)应用内安装正确姿势

Android开发避免不了应用内发起安装应用,随着Android版本的升级,权限越来越收紧,安装姿势变了又变。接下来我来告诉大家针对不同Android版本正确发起应用内安装。 首先将现有的Android版本进行分一下界限,Android 1.x~6.x 和Android 7.x 及Android 8.x。可以看下图,如果看不懂,接下来我会详细解说,如果你领悟了就不用往下看了。 如有一丁点不留神就会出现以下错误提示: 1、 Caused by: android.os.FileUriExposedException: …

2017年12月29日 5条评论 18827点热度 0人点赞 daozi 阅读全文
Android

揭秘Android录屏暂停技术

我是Game Screen Recorder(游戏录屏大师)的主程序员,我来说说录屏使用到技术点,也许不是什么黑科技,但是还是很让人头疼的技术点,不过我已经躺了一次,在这里给大家说一下。 估计大家知道利用 MediaRecorder + MediaProjectionManager + MediaProjection + VirtualDisplay技术点可以实现不能暂停的屏幕录制。那我先说说这个实现的技术: package com.aoaoyi.screenrecorder.ui; import android.…

2017年1月10日 7条评论 12982点热度 0人点赞 daozi 阅读全文
Android

Android动态更换Launcher Icon

动态更换应用Icon?没有搞错吧,没有啦,你要是仔细的话,你会发现淘宝已有节日都会进行更换图标?不信的话下一年的11.11或12.12,你观察一下。这样来说,那是可以换啦? 那问题来了怎么换? 1、想到这个<activity-alias>你点击可以查看官方表述,简单说:为目标Activity指定别名,可以实现多个入口图标。相信做过系统Setting、Launcher和插件开发的开发者在系统的源码中应该见过很多。 2、PackageManager中有个setComponentEnabledSetting方…

2016年12月28日 1条评论 11268点热度 0人点赞 daozi 阅读全文
Android

Android面试题16–代码混淆(Proguard)

1. Proguard认识 Proguard是一个非常高效和方便的混淆工具,使用了这个工具混淆打包后,apk体积显著的减少了,而且反编译难度也加大了。官网的介绍是:ProGuard是一个免费的Java类文件缩小,优化,混淆和预验证的工具。它检测和删除未使用的类,字段,方法和属性;优化字节码并删除未使用的指令;它使用短的无意义的名称重命名剩余的类,字段和方法。所得到的应用程序和库更小,更快,并且更好地针对逆向工程进行优化。 而且Proguard已经集成在Android studio构建系统里了,可以通过简单的代码来实…

2016年12月24日 3条评论 5694点热度 0人点赞 daozi 阅读全文
Android

Android资源动态加载1

在很多Android应用上,都有资源动态加载的功能,比如更换主题皮肤,替换聊天界面背景图片等。 我们知道,应用中的资源文件,包括图片,xml文件等,都是在编译的时候打包好的,那怎样才能动态加载资源呢? 其实有一个比较简单的思路,将需要替换的资源文件打包在一个apk文件中,动态下发到本地,然后通过重新构造Resources对象访问apk中的资源,进行本地的动态替换。主要有以下几个步骤: 一、指定资源文件加载路径 Android应用中的资源是通过AssetManager来管理的,其中addAssetPath方法可以指定…

2016年12月5日 2条评论 5772点热度 0人点赞 daozi 阅读全文
Android

Android面试题3--常用单位dp、sp、in、dpi...

Android常用单位: 1.in(英寸)屏幕尺寸: 指实际的物理尺寸,为屏幕对角线的测量。一般讲的大小单位都是英寸,比如iPhone7的屏幕尺寸是4.7英寸。 2.px像素(pixel): 屏幕上的点,基本原色素及其灰度的基本编码。 3.分辨率(Resolution): 是指屏幕上垂直方向和水平方向上的像素个数。(比如iPhone7的分辨率是1334*750) 4.dpi(dot per inch): 就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。 Inch是一个物理单位(无论在任何设备上,其大小…

2016年11月21日 2条评论 6724点热度 0人点赞 daozi 阅读全文
Android

Android面试题2--Activity数据的保存和恢复

Android中有突发情况需要对数据进行保存: 1、点击back键 2、点击锁屏键 3、点击home键 4、其他APP进入前台 5、启动了另一个Activity 6、屏幕方向旋转 7、APP被Kill 这些时候就需要对数据进行保存,保存数据分为临时保存和持久化保存。 两种保存形式: 1、重写onSaveInstanceState()  在这个方法里进行对数据临时保存。 2、重写 onPause() 在这个方法里对数据进行持久化保存。 下面咱们详细说说这两种保存方式的步骤、什么情况下改用哪一种方法。 一、onSave…

2016年11月21日 4条评论 6843点热度 0人点赞 daozi 阅读全文
Android

Android面试题1--Activity的4种启动模式

对Android而言,Activity有四种启动模式,它们是: 1. standard 标准模式也是默认模式,每次都新建一个实例对象。 2. singleTop 如果在任务栈顶发现了相同的实例则重用,否则新建并压入栈顶。 3、singleTask 如果在任务栈中发现了相同的实例,将其上面的任务终止并移除,重用该实例。否则新建实例并入栈。 4、singleInstance 允许不同应用,进程、线程等共用一个实例,无论从何应用调用该实例都重用。 想要感受一下的话写一个小demo,然后自己启动自己再点返回键就看出来了。下…

2016年11月20日 4条评论 8529点热度 0人点赞 daozi 阅读全文
Android

Android服务保活(灰色保活)

灰色保活,这种保活手段是应用范围最广泛。它是利用系统的漏洞来启动一个前台的Service进程,与普通的启动方式区别在于,它不会在系统通知栏处出现一个Notification,看起来就如同运行着一个后台Service进程一样。这样做带来的好处就是,用户无法察觉到你运行着一个前台进程(因为看不到Notification),但你的进程优先级又是高于普通后台进程的。 1、方案的设计思想: Android 中 Service 的优先级为4,通过 setForeground 接口可以将后台 Service 设置为前台 Serv…

2016年11月3日 2条评论 12413点热度 0人点赞 daozi 阅读全文
12
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

最新 热点 随机
最新 热点 随机
解决Android 7及以上Notification.contentView为null问题 彻底解决git命令免密问题 隐藏ScrollView、RecyclerView等滚动条和去掉滑动到边界阴影的方案 Android Studio 3.4 编译Release版本广点通所有广告不显示 Android中使用System的getProperty()方法及获取Android内核版本信息 弄清楚INSTALL FAILED CONFLICTING PROVIDER问题
Android中Instant Run工作原理及用法 Android面试题8–Android Studio与Eclipse比较 Android中CrashHandler的实现 Android studio 快速代码模板生成常用的缩写 Android Studio中格式化代码 神奇的摩尔定律
最近评论
宝宝 发布于 7 年前(02月27日) 哈哈哈哈
GPU Mining 发布于 7 年前(02月19日) I am just starting to learn about all of this. Tha...
Timothynix 发布于 7 年前(02月08日) Your place is valueble for me. Thanks!… http:...
趣头条 发布于 7 年前(02月08日) 鸟儿叫,花儿笑,一年一季春来到!
xing1982 发布于 7 年前(02月04日) 不错不错!内容感觉好极了!

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号