场景一: 今天早上十点高高兴兴的跟平时早上一样买一杯粥然后一边喝着一边去上班,步行了15分钟到了公司,然后打指纹开门,然后就愉快的写代码了,我擦,好想电脑没开机,我晕好像没带眼镜,发现最近记性不是很好,是不是前两天中午没休息的原因,感觉身体被掏空,白天上班,晚上回去改论文我也是不容易啊!好了废话说了这么多,open car走起!然后被这个ToolBar玩了一天,爽歪歪!我真的很菜! 初识 Toolbar(其实我看他很不舒服) Toolbar 是在 Android 5.0 开始推出的一个 Mate…
敏少咨讯: 1.生活琐事篇 最近由于公司赶项目所以偷懒了,博客没有及时更新,还请小伙伴们手下留情啊!最近发生了很多趣事,就在今天我们学校退书籍费,这可把我开心的哈哈!无缘无故又有钱了,嘿嘿,刚好五一出去浪一浪! 2.最火剧情篇 最近看那个<人民的名义>可把我相信这应该是国内第一部反腐败的电视剧吧,最近在群里也看到很多人改了自己的昵称,称自己是沙书记,李达康书记,高育良书记等等,我只是看着乐呵哈!不说话,搞的一个群全是大官,宝宝好好害怕!大官们饶命啊!我只是一个毛毛虫. 3.Shape入门技术篇…
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API 调用了未实现的OpenGL ES API函数,一般由于导入的第三方库如地图库,里面有用到OpenGL,但是模拟器的硬件默认是没有这个的,所以需要我们编辑模拟器Emulation Options选项勾选 Use Host GPU 然后重启模拟器再尝试,如果还是这个错误,那么我们只好用真机测试了. 2.…
今天上班做那个类似于ios拍照的那种效果图 就是个垂直布局然后里面textview+分割线+textview+button 当然也可以用button+分割线+button 方法有很多,选择适合自己的就行. 1.首先看下何为bottomsheetdialog,以前Bottom Sheet是在support library 23.2之后提供的一个新控件,也就是需要用6.0以上的SDK进行编译才可以使用此控件 下面看下我当前的sdk版本号是25因此使用完全没问题 2.看下我之前的布局 代码如下: <?…
场景一 由于最近项目钟要用到定位功能因此肯定需要用到地图以及地位功能,相信大家也知道目前国内比较出名的地图像百度.高德.腾讯等这些还是用到比较多的,于是思考了一下决定还是用百度,相信老司机们都知道的哈! 第一步到百度开发者平台注册一个账号一般是手机号或者短信动态验证码登录我注册了所以这里不再赘述 第二步就是创建一个应用程序这个名字一般是随意取的这个不用太在意如下图所示 3.获取Sha1这里列举两种方式如果其他有更好的办法可以在下面留言哈! 第一种就是通过As自身build.gradle如下所示…
在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一次,那用轮询也是一个不错的选择,因为不需要额外搭建推送服务器,不用额外配置推送服务.另外推送现在一般以维持长连接的方式实现,在手机客户端也会耗费一定的电量.今天就介绍一个在Android上实现轮询机制的方法——使用AlarmManager AlarmManager在Android中主要用来定时处理一…
在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inquiry result引起的上层变化是通过向上层回报device found的signal来实现的.在jni层收到这个signal之后,会调用java层的onDeviceFound接口,这个地方为什么会调用我就不详细解释了,看了我之前的文章,这个地方应该是轻车熟路了.直接分析onDeviceFound…
SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么. 例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值. 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误. 另外, SQLite 在解析CREATE TABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句…
Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI界面.它和事件处理机制类似,只不过事件处理机制是程序组件级别,而广播事件是系统级别. 系统源码:frameworks/base/core/java/android.content.BroadcastReceiver.java 1)BroadcastReceiver生命周期 BroadcastRece…
将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就顺便整理记录下来,作为这一个多月来博客的重新开火做饭吧.从今天起我会陆续恢复博客的更新,也希望大家继续支持. 今天要介绍的是Github上一个使用非常广泛的图片异步加载库Android-Universal-Image-Loader,该项目的功能十分强大,可以说是我见过的目前功能最全.性能最优的图片异…
背景:因为之前老板上次问我我们的app能不能自定义上面的状态栏我说可以啊!当时没管,今天试了下果然很多坑,之前github上也有很多大佬写了一个开源库有兴趣的可以点进去看下支持DrawLayout沉侵式[StatusBarUtil](https://github.com/laobie/StatusBarUtil)感觉好牛逼,像大佬敬礼,我毕竟是个小喽喽,我只能用最蠢的办法! 首先说下关于状态栏当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏实现代码 其实状态栏这东西不是很难,就是通过添加一…
原始尺寸场景 相信大家对上面也有所有耳闻另外就是如何计算屏幕的密度一般都是按照勾股定理例如中等屏幕密度 480^2+800^2开根号 然后除以当前屏幕尺寸3.5-4.2之间尺寸. 对于刚出来的那些Android职场的小鸟,适配的确是一件很头痛的事情,现在相信大家都知道主流的屏幕是xhdpi(超高屏幕702*1280)和xxhpi(高清屏幕1080*1920)但是有些公司为了节约成本只用iphone1x然后android根据px进行换算一般都是px转dp是px 除以2dp=px/2 Px (Pix…
情景一 今天主要实现一个国家与地区切换,就是当我们选中RadioButton时然后将值设置到TextView中,听着这需求应该不难对吧?那么我们就开始约会吧? 看下原型图 准备条件: 首先需要一个radiobutton然后一个textview作为子item 需要一个适配器这里不再多赘述 需要写回调方法 void onItemClickListener(int position); 在主Activity 需要将适配器与数据源绑定然后进行回调将当前选中的标题设置到textview中 下面看下具体的实…
场景:测试机:华为荣耀6x 今天我自己掉入一个很蠢蠢的坑,一个引导页搞了20多分钟,不管我怎么测试用真机还是模拟器都无法运行,但是我写的demo完全没问题,好无语,我都怀疑我是不是搞android,我去,一个简单的问题都不能解决?后来看了下自己真的傻逼了无语! 看下图 挖坑1 后来又看了下清单文件AndroidMainfest.xml好吧又给自己挖了一个坑 挖坑2 跳坑1 后来看了下自己傻逼了BaseActivity集成的AppCompatActivity 而当前是Actiivty主题样式那我可…
版权声明:分享技术,传播快乐.如果本博客对你有帮助,请在我的博客首页为我打赏吧! 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. Kotlin 作为 Android 领域的 Swift,绝对让你如沐新风.抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解. http://t.cn/R2DK0SL React Native…
传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 今天我们学习如何实现Android应用的自动更新版本功能,这是在各种语言编写的应用中都会经常遇到的情景.当我们的应用检测到网络上有新版本发布时,系统会提示是否下载新版本应用,当新版本应用下载完毕后,系统会自动安装下载的新版本应用(或跳转到相关安装页面询问).我们将下载的应用存放在sdcard中,由于整个流程涉及对sdcard的读写操作,所以要赋给我们应用读写外存的权限.下面给出该场景…
Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一 个冗余的实现.Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Setup Wizard程序. 在Android的原生代码中,Provision并没有被编译进系统,这可能是Provision不被人所知的原因.另外SdkSetup是一个实现相同功能的程序,从名字来看,SdkSetup是被用来在模拟…
前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThreadState负责提供与Binder通信相关的接口,每个线程有一个.下面我们通过具体 示例MediaPlayerService来分析我们应用程序中怎么通过Binder通信的. frameworks/base/media/mediaserver/main_mediaserver.cpp int mai…
1.html代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> <title>Android/Javascript互调D…
我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit等等.那么我们平时看到的Android手机中那些漂亮的界面是怎么显示出来的呢?这就要用到Android的布局管理器了,网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了. 在分析布局之前,我们首先看看控件:Android中任何可视化的控件都是从andr…
Android 开发之serviceManager分析 在Android系统中用到最多的通信机制就是Binder,Binder主要由Client.Server.ServiceManager和Binder驱动程序组成.其中Client.Service和ServiceManager运行在用户空间,而Binder驱动程序运行在内核空间.核心组件就是Binder驱动程序了,而ServiceManager提供辅助管理的功能,无论是Client还是Service进行通信前首先要和ServiceManager…
======================================================================================================== 注: 本文内容转载自互联网,仅供个人学习之用! ======================================================================================================== (1)  Application…
布局管理器都是以ViewGroup为基类派生出来的; 使用布局管理器可以适配不同手机屏幕的分辨率,尺寸大小; 布局管理器之间的继承关系 : 在上面的UML图中可以看出, 绝对布局 帧布局 网格布局 相对布局 线性布局是直接继承ViewGroup,表格布局是继承的LinearLayout; 一. 线性布局(LinearLayout) 1. 线性布局作用 作用 : 线性布局会将容器中的组件一个一个排列起来, LinearLayout可以控制组件 横向 或者 纵向 排列, 通过android:orie…
  1:JNI是什么? Java NativeInterface(JNI)是Java提供的一个很重要的特性.它使得用诸如C/C++等语言编写的代码可以与运行于Java虚拟机(JVM)中的 Java代码集成.有些时候,Java并不能满足你的全部开发需求,比如你希望提高某些关键模块的效率,或者你必须使用某个以C/C++等Native语 言编写的程序库:此时,JNI就能满足你在Java代码中访问这些Native模块的需求.JNI的出现使得开发者既可以利用Java语言跨平台.类库丰 富.开发便捷等特点,…
通过自定义ListView实现动画特效,被点击元素A向前移,A之前元素往后移动. 重点在于动画的实现: 具体代码如下: package com.open.widget; import java.util.ArrayList; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import and…
在Android中ProcessState是客户端和服务端公共的部分,作为Binder通信的基础,ProcessState是一个singleton类,每个 进程只有一个对象,这个对象负责打开Binder驱动,建立线程池,让其进程里面的所有线程都能通过Binder通信. 与之相关的是IPCThreadState,每个线程都有一个IPCThreadState实例登记在Linux线程的上下文附属数据中,主要负责 Binder的读取,写入和请求处理框架.IPCThreadState在构造的时候获取进程的…
3.3.1 IPC钩子函数设计与实现 IPC Binder是Android最重要的进程间通信机制,因此,必须在此实施强制访问控制. 1. 修改secuirty.h 打开终端shell,输入指令“cd /android4.0/kernel/goldfish/include/linux/vim security.h”,找到结构security_operations,加入函数指针变量,如下所示: /* * This is the main security structure. */ struct s…
1. 制定smack规则 “Zygote”进程由init进程创建,它负责创建系统服务进程“systemserver”.“radio”进程和APP进程.其中“radio”进程的uid是1001,它能够实现打电话和发短信的功能,“systemserver”进程uid是1000,它负责创建系统服务组件,通讯录进程uid是10000,它能够访问通讯录数据库,uid大于等于10000的进程都属于Android应用程序进程. 为了实现对“radio”和通讯录进程的访问控制,本课题使用“libsmack”库中…
5.1实验方案 通过以上章节,本文阐述了目前Android平台上的恶意软件以“隐私窃取”和“恶意扣费”类为主,本研究课题访问控制的目标也正是阻止恶意软件“隐私窃取”和“恶意扣费”的行为,因此,本实验方案选取良性软件和恶意软件,分别针对拨打电话.发送短信.联网.访问sd卡.访问通讯录.查看短信行为进行测试和分析.测试用例选取百度通讯录.360通讯录.酷狗音乐.DroidDream,实验环境为Ubuntu10.04和Android4.0模拟器以及相应的goldfish内核. 5.2实验过程 1. 测…
Android系统是基于Linux内核开发的,因此,Android系统不仅保留和继承了Linux操作系统的安全机制,而且其系统架构的各个层次都有独特的安全特性[2] . 1. Linux内核层安全机制 Android的Linux内核包含了强制访问控制机制和自主访问控制机制.强制访问控制机制由Linux安全模块来实现,但Google出于某种原因,并没有将LSM编译进Android内核.自主访问控制机制通常由文件访问控制来实现,Linux文件系统的权限控制是由user.group.other与读(r…