202109-24 如何通过Battery Historian分析Android APP耗电情况 目录一、电量统计模块概述1.1、软件耗电统计二、battery-historian2.1、概述2.2、获取bugreports2.3、数据分析2.4、bugreport文件分析一、电量统计模块概述耗电信息在设置->电量中能够非常直观的看到。注意,Android所有功耗统计都是通过代码估算,没有集成电路参与汇报。准确度取决于厂商ROM所提供的power_profile.xml文件。由于不同厂商power_profile.xml准确度及源码有差异,因此不同手机、不同版本的数据可能有较大差异... 继续阅读 >
202108-23 详解Android中的ActivityThread和APP启动过程 目录ActiviryThreadActivityThread的初始化主线程Looper的初始化主线程Handler的初始化ApplicationThread及Activity的创建和启动APP的启动系统的启动过程APP的启动过程APP启动过程的部分代码思考总结ActiviryThreadActivityThread的初始化ActivityThread即Android的主线程,也就是UI线程,ActivityThread的main方法是一个APP的真正入口,MainLooper在它的main方法中被创建。//ActivityThread的main方法publicstaticvoidmain(Str... 继续阅读 >
202108-22 详解App保活技术实现 目录前言黑科技进程保活原理Java层复活进程在native层进行binder通信方式一利用libbinder.so与ActivityManagerService通信方式二使用ioctl与binder驱动通信写个Demo试一下继续写Demo试一下最后前言通过ioctl跟binder驱动交互,实现以最快的方式唤醒新的保活服务,最大程度防止保活失败。同时,我也将跟您分享,我是怎么做到在不甚了解binder的情况下,快速实现ioctlbinder这种高级操作。声明:现在这个保活方式在M... 继续阅读 >
202108-22 详解App保活实现原理 目录概述保活的底层技术原理实现方法改进空间如何在native层进行binder通信如何应对系统如何应对用户如何应对总结概述早期的Android系统不完善,导致App侧有很多空子可以钻,因此它们有着有着各种各样的姿势进行保活。譬如说在Android5.0以前,App内部通过native方式fork出来的进程是不受系统管控的,系统在杀App进程的时候,只会去杀App启动的Java进程;因此诞生了一大批“毒瘤”,他们通过forknative进... 继续阅读 >
202103-19 Android App中进行语言的切换 本篇简单介绍将在AndroidApp中进行语言的切换和使用dragonFace改系统语言。切换语言首先需要在res中创建个若干个不同的value文件夹(例如:values、values-en、value-ja)。然后将不同的String.xml文件。这里为中、英、日三语切换。(value文件夹命名可以参考下面)在res目?下建立不同名?的values文件?碚{用不同的?言包Values文件?R?如下:中文(中????alues-zh-rCN中文(台?常??alues-zh-rTW中文(香港):values-zh-rHK英?(美... 继续阅读 >
202103-19 如何在Android App中接入微信支付 本篇简单介绍AndroidApp中接入微信支付,包括App内支付和扫码支付。分享+支付pofei微信支付wechat官方接入文档App内支付源码下载主要流程:1.微信支付平台注册账号注:注册并申请成功以后,需要在API安全中设置你的API密钥32个字符。建议使用MD5加密,并且需要妥善的保存。因为无法查看。2.生成预支付订单3.生成签名参数4.调起微信,完成支付扫码支付扫码支付使用的是微信统一下单API,使用的是模式二,模式一一直说U... 继续阅读 >
202103-12 Android在一个app中安装并卸载另一个app的示例代码 Android在一个app中安装并卸载另一个app1.在app→src→main下新建文件夹asserts,将准备安装的apk文件放在asserts内2.在app→src→main→res下新建文件夹xml,右击xml文件夹,选择new→XMLResourceFile,Filename为文件名,可随意,本文中为filepaths;Rootelement为资源类型,输入paths,确定并编辑以下代码:<?xmlversion="1.0"encoding="utf-8"?><pathsxmlns:android="http://schemas.android.com/apk/res/andro... 继续阅读 >
202102-20 Android如何让APP无法在指定的系统版本上运行(实现方法) 随着市面上越来越多三方APP的出现,某些手机厂商也开始对这些APP进行了安装限制或者运行限制,或者三方APP自身的版本过低,无法被特定的系统版本所支持。今天我将要模拟实现一个“由于APP自身版本过低、导致无法在当前的系统版本上运行”的功能效果。实现思路如下:要获得APP的目标运行版本,也要知道系统的编译版本通过版本比较,在进入该APP时,给用户做出“不支持运行”的提示用户确认提示后,直接退出该APP关键点是targ... 继续阅读 >
202101-29 基于SQLite的Android登录APP 基于SQLite的Android登录APP该登录APP主要包括三个模块:1、登录:用户选择登录方式、登录身份,输入账号密码,完成登录。2、忘记密码:用户输入新密码及验证码修改登录密码。3、个人信息:用户完成登录后设置个人信息并显示。使用控件:1、单选按钮RadioButton:区分是密码登录还是验证码登录。2、下拉框Spinner:区分是个人用户还是公司用户。3、编辑框EditText:输入手机号和密码(或验证码)。4、复选框CheckBox:判断是否记住... 继续阅读 >
202012-29 Android app会crash的原因及解决方法 androidmain入口的commonInit()方法内处,有这么一句话,Thread.setDefaultUncaughtExceptionHandler(newKillApplicationHandler(loggingHandler));如果没有这句话,app就不会crash。不信,你往里面看,publicKillApplicationHandler(LoggingHandlerloggingHandler){@OverridepublicvoiduncaughtException(Threadt,Throwablee){//捕获到异常try{......//打印crash日志,展示崩溃弹窗等//Bringu... 继续阅读 >
202012-22 Android开发实现图片切换APP 本文实例为大家分享了Android开发实现图片切换APP的具体代码,供大家参考,具体内容如下本次介绍的是关于图片切换的APP,这里实现了两种切换效果;不同的效果针对不同的情况,两种效果的代码都会介绍:代码-布局:main.xml的代码:<?xmlversion="1.0"encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.... 继续阅读 >
202011-29 Django多个app urls配置代码实例 快速测试创建项目与appdjango-adminstartprojectmysitedjango-adminstartappapp1django-adminstartappapp2mysite下的urls.py文件fromdjango.contribimportadminfromdjango.urlsimportinclude,pathurlpatterns=[path('admin/',admin.site.urls),path('app1/',include('apps.app1.urls',namespace='app1')),path('app2/',include('apps.app2.urls',namespace='app2')),]app1下的apps文件fromdjango.appsi... 继续阅读 >
202011-25 Android使用ViewPager完成app引导页 本文实例为大家分享了Android使用ViewPager完成app引导页的具体代码,供大家参考,具体内容如下publicclassMainActivityextendsAppCompatActivity{//int[]resourceId={//R.layout.first,//R.layout.second,//R.layout.third//};List<View>mListView;ViewPagerviewPager;ViewGroupdotGroup;List<ImageView>dotImageView=newArrayList<>();@OverrideprotectedvoidonCreate(Bundl... 继续阅读 >
202011-01 uni-app使用countdown插件实现倒计时 本文实例为大家分享了使用countdown插件实现倒计时的具体代码,供大家参考,具体内容如下实现的效果如下:这里实现的是一个活动倒计时,获取当前时间和活动开始时间,相减得出的时间差就是我们需要的倒计时。使用插件很方便。首先新建一个项目,选择uni-app,模板选择hello-uniapp,里面有官网的组件可以直接使用。创建之后将components整个文件夹复制到自己的项目中。在需要使用倒计时的页面引入组件<script>importuniCountdown... 继续阅读 >
202010-10 uin-app+mockjs实现本地数据模拟 最近在开发项目的时候,需要用到mockjs这个包来实现前端本地数据的模拟,下面我就来说一下具体步骤:前言uni-app将自己的配置融合到了vue.config.js中,所以需要自己配置,需要在package.json的同级目录下新建一个vue.config.js;ajax请求的路由,因为这个路由我们希望拿到模拟数据,所以用webpack的devserve来拦截。拦截之后通过mockjs,由它来生成模拟数据,然后返回模拟值。步骤在vue.config.js中加入下面代码:constMock=re... 继续阅读 >
202010-09 完美解决Android App启动页有白屏闪过的问题 应用启动的时候有短暂的白屏,如图:可以通过设置theme的方式来解决<stylename="AppTheme"parent="Theme.AppCompat.Light.NoActionBar"><!--Customizeyourthemehere.--><itemname="colorPrimary">@color/colorPrimary</item><itemname="colorPrimaryDark">@color/colorPrimaryDark</item><itemname="colorAccent">@color/colorAccent</item></style><stylename="AppTheme.Transparent"><itemn... 继续阅读 >