android开发

【Bugly干货分享】关于 Android N 那些你不知道的事儿

无人久伴 提交于 2021-02-12 01:45:12
今年3月,Google 破天荒提前半年发布了 Android N 开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今日此门中(雾)兴冲冲刷了 Android M Preview 的时候发现各种 Crash 就连微信也(不出所料得)中招时自己一脸懵逼的心情。当然,为自己的机智而庆幸并没有过多久,很快就有微信好友(当然也是纯纯的谷粉)反馈微信又双叒叕在 Android 新版本下 Crash 了……好吧这次我们的时间很充裕,因为 5 个 preview 之后才会发布最终 release 版本。令人失望(咦)的是,我们的工程师在一天之内就修复了这个 bug 并且赶在当天 6.3.15 alpha 版本发布之前修复并合入主线,辜负了 Google 的一片苦心。 痛定思痛,当天我就拎起来麒麟臂,在 Chrome 的地址栏重重得敲入: http://developer.android.com/preview/overview.html , 并且听说 Google 在北京举办了 Android 开发者大会的时候,屁颠屁颠得过去了。 假如我是产品经理 在这个『人人都是产品经理』的年代,作为程序员当然是敲得起代码,当得起经理(。。。)。如果我是产品经理,Android N 的更新无非是以下三个点: 默认多窗口支持 强化通知,里边有你最喜欢的直接回复 没了

Rexsee API介绍:CallLog通话记录

两盒软妹~` 提交于 2021-02-06 09:06:58
rexseeCallLog对象,实现自定义数量的最近通话记录,自定义查询最近通话,读取记录数据库表的URI地址。。 【函数】 JsonObjectArray get(int number) 【说明】 获取指定数量的最近通话。 【返回】 Json对象数组,使用eval('('+json+')')转换为JavaScript对象数组。 【参数】 number:要获取的最近通话的数量。 【示例】 alert(rexseeCallLog.get(10)); 【函数】 JsonObjectArray get(String type, int number) 【说明】 获取值类型、指定数量的最近通话。 【返回】 Json对象数组,使用eval('('+json+')')转换为JavaScript对象数组。 【参数】 type:类型,"INCOMING"(数据库中为1)、"OUTGOING"(数据库中为2)或"MISSED"(数据库中为3)。 number:要获取的最近通话的数量。 【示例】 alert(rexseeCallLog.get('INCOMING',10)); alert(rexseeCallLog.get('OUTGOING',10)); alert(rexseeCallLog.get('MISSED',10)); 【函数】 JsonArray getColumns() 【说明】

最全Android开发常用工具类

試著忘記壹切 提交于 2020-11-15 20:43:02
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java。 目前包括 HttpUtils、DownloadManagerPro、Safe.ijiami、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。 1、HttpUtils Http网络工具类,主要包括httpGet、httpPost以及http参数相关方法,以httpGet为例: static HttpResponse httpGet(HttpRequest request) static HttpResponse httpGet(java.lang.String httpUrl) static String httpGetString(String httpUrl) 包含以上三个方法,默认使用gzip压缩,使用bufferedReader提高读取速度。 HttpRequest中可以设置url、timeout、userAgent等其他http参数

手把手教你逆向分析android程序

三世轮回 提交于 2020-10-31 03:28:10
很多人写文章,喜欢把什么行业现状啊,研究现状啊什么的写了一大通,感觉好像在写毕业论文似的,我这不废话,先直接上几个图,感受一下。 第一张图是在把代码注入到地图里面,启动首页的时候弹出个浮窗,下载网络的图片,苍老师你们不会不认识吧? 第二张图是微信运动步数作弊,6不6? ok,那我们从头说起 1.反编译 Android 的反编译,相信大家都应该有所了解,apktool、JEB 等工具 我们先看一下 Apk 文件的结构吧,如下图: 1.META-INF: 签名文件(这个是如何生成的后面会提到) 2.res: 资源文件,里面的 xml 格式文件在编译过程中由文本格式转化为二进制的 AXML 文件格式 3.AndroidManifest.xml: android 配置文件,编译过程依然被转换为 AXML 格式 4.classes.dex: java 代码编译后产生的类似字节码的文件(dalvik 字节码) 5.resources.arsc: 具有 id 值资源的索引表(asserts 文件夹中的资源不会生成索引) 6.其他文件: 可由开发者自己添加,诸如 assets 等,或者 lib(native so 代码)等目录 (Android 编译打包过程分析参看: http://blog.csdn.net/luoshengyang/article/details/8744683)

Android开发之监听或获取手机短信内容

拟墨画扇 提交于 2020-04-11 13:31:18
最近做的项目里要监听手机的短消息内容,这个东西好像在最初学的时候都做过,不过现在早忘记了,现在写下来,记住了。 前提--权限: <uses-permission android:name="android.permission.RECEIVE_SMS" > </uses-permission> <uses-permission android:name="android.permission.READ_SMS" > </uses-permission> 方式一:通过广播监听短信消息 (注意:这种方式只对新收到的短消息有效,运行代码,并不会读取收件箱中已读或未读的消息,只有当收到新来的短消息时,才会执行onChange方法) 注册一个广播: <receiver android:name="com.dbjtech.acbxt.waiqin.SmsReciver" > <intent-filter android:priority="999"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> SmsReceiver.java public class SmsReciver extends BroadcastReceiver { @Override

GitHub标星4.6K+!手写一款基于MVVM模式开发框架,完美实现事件与数据源绑定!

删除回忆录丶 提交于 2020-04-08 14:03:26
前言 目前,Android流行的MVC、MVP模式的开发框架很多,然而一款基于MVVM模式开发框架却很少。MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块,加上各种原生控件自定义的BindingAdapter,让事件与数据源完美绑定的一款容易上瘾的实用性MVVM快速开发框架。从此告别findViewById(),告别setText(),告别setOnClickListener()... 框架流程 框架特点 快速开发 只需要写项目的业务逻辑,不用再去关心网络请求、权限申请、View的生命周期等问题,撸起袖子就是干。 维护方便 MVVM开发模式,低耦合,逻辑分明。Model层负责将请求的数据交给ViewModel;ViewModel层负责将请求到的数据做业务逻辑处理,最后交给View层去展示,与View一一对应;View层只负责界面绘制刷新,不处理业务逻辑,非常适合分配独立模块开发。 流行框架 retrofit + okhttp + rxJava 负责网络请求; gson 负责解析json数据; glide 负责加载图片; rxlifecycle 负责管理view的生命周期;与网络请求共存亡; rxbinding 结合databinding扩展UI事件;

Android知识体系总结2020之Android部分原生图片音视频(非JNI)开发篇

こ雲淡風輕ζ 提交于 2020-04-08 11:04:10
1.原生图片开发 Bitmap 2.原生视频开发 VideoView IJKPlayer GSYPlayer JiaoZiPlayer 3.原生音频开发 MediaPLayer SoundPool 面试题(检测自己学的怎么样) 1.之前有过音视频开发经验吗 & 说说用哪些开源架子开发的。 2.FFmpeng了解过吗? 3.Android中播放视频音频的方式有哪些? 4.Android中播放网络地址视频有哪些出色的开源库? 5.流媒体服务器了解吗? 6.谈谈你对编码格式的理解。 7.MediaPlayer和SoundPool的区别? 8.视频硬解码和软解码的区别? 9.MediaPlayer和SoundPool区别 注意:文章末尾面试题来自于笔者自己总结,想求答案或者交流,start 笔者GitHub项目 AndroidFaceInterview 更新时间:2020-01-15 来源: oschina 链接: https://my.oschina.net/ClAndEllen/blog/3224504

Binder进程间通信系统第五篇-----Binder进程间通信实例

☆樱花仙子☆ 提交于 2020-04-08 09:21:17
注意1 class IFregService: public IInterface 服务接口是为 class BnFregService: public BnInterface 服务的,如下声明和定义的服务接口,是为FregService服务提供的接口,这是Binder进程间通信的基本要求,Binder进程间通信机制要求提供服务的一方必须提供一个跨进程访问能力的服务接口,以便使用服务的一方可以通过该接口来访问服务。接口名就是 descriptor : " hr.ma.IFregService " 。客户进程可以在 service manager中通过该 名称 获取服务的接口,然后访问服务。 DECLARE_META_INTERFACE(FregService); /* * 0. 使用宏 IMPLEMENT_META_INTERFACE 来实现IFregService类的元接口 * 1. 将 IFregService类的静态成员变量 descriptor 设置为 " hr.ma.IFregService " * 2. 实现了 IFregService类的构造函数和析构函数,是空函数 * 3. 实现了成员函数 getInterfaceDescriptor() ,用来获取一个IFregService类的描述符,即 descriptor * 4. 实现了 asInterface()

Android嵌入式系统程序开发

对着背影说爱祢 提交于 2020-04-08 06:51:35
《Android嵌入式系统程序开发》 基本信息 作者: 胡文 宁世勇 李明俊 金雪松 丛书名: 单片机与嵌入式丛书 出版社:机械工业出版社 ISBN:9787111411697 上架时间:2013-4-2 出版日期:2013 年4月 开本:16开 页码:437 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 更多关于 》》》《 Android嵌入式系统程序开发 》 内容简介 计算机书籍   《android嵌入式系统程序开发(基于cortex-a8)》主要分为三部分,包括软件篇、硬件篇和项目篇。软件篇从android 体系结构和开发环境搭建,以及android 应用程序开发等方面构造了一个完整的android 开发流程;硬件篇重点讲解了s5pv210硬件结构和android系统移植,详细介绍了底层驱动的封装、中间层jni 的制作,以及上层ui的设计;项目篇提供完整的综合应用项目的程序开发实例,详细介绍了开发过程和原始程序代码。并且安排了丰富的实验内容与实践,让读者深刻理解和掌握嵌入式系统开发的整个过程,了解底层驱动程序驱动硬件的原理和上层应用程序的设计方法。    《android嵌入式系统程序开发(基于cortex-a8)》内容丰富实用、层次清晰、叙述详尽,方便教学与自学。本书可作为高等院校计算机类、电子类和控制类等专业高年级本科生

使用libjpeg进行图片压缩

空扰寡人 提交于 2020-04-07 21:26:25
简介 由于工作原因,boss下达的任务就大概说了对图片进行压缩寻找比较合理的方式,还举了一个项目中的坑,就是系统原生的Bitmap.compress设置质量参数为100生成图片会变大的坑。所以我打算用一点时间研究研究Bitmap在内存和外存中的情况。首先需要对图片进行压缩,大家都知道图片是Android里面一个大坑,具体的问题有: OOM,一不留神就用OOM来冲冲喜,所以网上就有了很多解决oom问题的建议,但是由于网友的水平不一也导致建议参差不齐。(内存) 图片压缩再加载失真严重,或者压缩率不够达不到项目要求的效果。(外存) 那我今天就要解决的就是通过今天查阅的资料和自己的判断,还有实践归档一下图片在Android上的问题。并且给出自己解决图片压缩问题的解决方案和实际操作。 1、为什么Android上的图片就不如IOS上的? libjpeg是广泛使用的开源JPEG图像库,安卓也依赖libjpeg来压缩图片。但是安卓并不是直接封装的libjpeg,而是基于了另一个叫Skia的开源项目来作为的图像处理引擎。Skia是谷歌自己维护着的一个大而全的引擎,各种图像处理功能均在其中予以实现,并且广泛的应用于谷歌自己和其它公司的产品中(如:Chrome、Firefox、 Android等)。Skia对libjpeg进行了良好的封装,基于这个引擎可以很方便为操作系统、浏览器等开发图像处理功能。