SharePreference SharePreference是一种持久化存储手段,使用场景很多,如第一次打开时加载的用户协议等.适合小数据单进程的应用.将数据以键值对的形式存储在XML中. 使用方式,edit接口,同时又commit和apply方法,推荐使用后一种,后一种为异步,前者为同步,对于单进程应用来说,数据更新不必太及时,只要确保数据的正确性,因为Android中sharedpreference是可以被多个进程读取,同时读取可能会导致数据出现问题. AIDL AIDL Android…
selector 是安卓资源文件的一种,它可以使按钮等实现不同状态下的不同UI,不用在代码中实现,而使用方式有两种,一种在color文件下 创建.xml可以使按钮等字体在不同状态下的变化,其二是在drawable中创建资源文件,可以设置背景等,下面的<shape标签可以绘制不同种图形,<gradient还可以实现渐变色的效果. 如何使一个textview显示两种不同字体的布局 对于新手来说可以使用多个textview拼接的方法,但此方法繁琐,一个textview实现有两种方法, 一是通过And…
layout_weight属性 layout_weight属性我们常常用到,但有时候会发现它还有一些奇怪的属性,比如大多数使用时会把宽度设置成0,但要是宽度不设置成0会有什么效果? layout_weight的属性意义为权重大于零的控件会分配剩余控件 意义为如控件属性设置为wrap_content时,如一个控件内容为"123",另外一个为"123456",两者同时设置相同的权重,后者大小会比前者大,是由于先分配内容空间,后为两控件设置剩余空间. 当layout_wi…
Android 中的webview android 中的webview是可以在app内部打开HTML等的网页,不必再打开浏览器,有两种实现方法,即webviewclient webChromeclient 两种方法,如果仅仅是简单的点击和静态界面,直接使用第一种. 注意事项 一,开启网络权限,可能一项没有设置到最后的结果就是加载不出来,所以我们需要再manifist文件中设置权限 <uses-permission android:name="android.permission.INTER…
Android设备调试桥 即adb 使用adb进行无线调试的一些常用命令 adb tcpip 5555 设置调试端口为5555 防止冲突 adb shell ifconfig wlan0 查询局域网中的移动设备局域网IP地址 adb connect 192.168.0.100 使移动设备和Android studio连接 adb devices 查询连接的设备 adb disconnect ip 断开连接 2. 使用插件 AndroidWifiADB 进行无线调试 注意的点 每次连接时都还要连接…
kotlin-android-extensions 插件被废弃 笔者曾经尝试写过一部分的kotlin代码 主要是项目中一些代码是kotlin完成的,其中我认为 kotlin的kotlin-android-extensions 插件非常方便,甚至超过了需要插件的butterknife,但谷歌在最近AS4.1后宣布放弃使用kotlin-android-extensions插件,似乎是由于recyclerview的viewholder的原因.再加上butterknife作者似乎也不再更新,所以掌握vi…
TBS 的接入和使用 TBS 的接入 腾讯TBS是X5内核的升级版,可以当作webview 来打开 网页,可以以用来打开docx doc pdf 等文件,这里主要使用的是文件功能. 依赖接入 api 'com.tencent.tbs.tbssdk:sdk:43939' 这是笔者2021/2/25编辑时最新版本,最新可在官网查询. 如果依赖文件下载有问题可手动下载jia包,本地依赖包可放在 app/libs 下,文件夹可自行创建,同时在 app/src/main/jniLibs/armeabi 下…
downloadmanager时Android系统下载器,使用系统下载器可以避免用stream流读入内存可能导致的内存溢出问题.以下为downloadmanager初始化部分.apkurl为下载网络路径.Environment.DIRECTORY_DOWNLOADS 为系统的下载路径.即下载至外部存储. mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); String apkUrl = "https:/…
BindView ButterKnife 优势 绑定组件方便,使用简单 处理点击事件方便,如adapter中的viewholder 同时父组件绑定后子组件无需绑定 注意 在setcontentview之后使用,且子空间不可再使用static final属性 在不改变按钮图片大小的情况,扩大点击事件, 在较低Android版本此方法可能有问题,即src和setbackground的区别,同样可以设置背景图片,但src仅将图片资源加载,不做其他处理,而setbackground会使图片自适应与按钮大…
xmlns XML namespace xml命名空间 其中主要是定义xml文件定义位置 前缀有三种,android app tools 后面为唯一标识符URI android 表示为引用自安卓系统 app 表示引用自app依赖的包或自定义控件 tools 表示 调试工具,在一些如不应该在程序运行时出现的布局,但想在渲染布局时出现的属性可以使用tools 例如tools:text, tools:visibility, tools.src, tools.background 在布局设置时可以看到,…
builder模式创建自定义popwindow builder设计模式 将一个复杂的对象构建与它的表示分离,简化代码的使用方式.当对象有多个参数或多个零件同时初始化方法同时初始化方法有默认值时,采用此模式比较方便. 主要结构 basepopwindow 产品类 builder 产品类具体的构造类 basepopwindow的子类 BasePopController 产品类控制类 PopupParams 产品类参数类 basepopcontroller 的子类 代码实现 public class…
安卓横竖屏大多数已经在manifest文件中将activity使用android:screenOrientation="portrait"属性写死,如简单的界面切换可直接更改为"sensor"属性,但如复杂的界面需使用其他方法. 1监听横竖屏切换变化 <activity android:name=".MainActivity" android:configChanges="orientation|keyboard|layoutDi…
设置类似钉钉或tel的圆形用户名首字母头像 设置有两种方法,一是使用已有的库或自定义的view组件,但如果确定只是文字头像,也可使用textview的backgrou属性,调整资源文件使textview达到圆形的效果, textview文字属性 文字属性使用gravate调整位置, activity的launchmode四种 其中singleTop singleStrack 使用方式不同,当首页界面,加载页设计为此时,不会频繁销毁activity,同时有利于广告植入, linerlayout o…
fragment与pageView fragment fragment不可以侧滑切换相关界面,但多数代码位于fragment中,易于维护,同时不会受到多个手势滑动的影响 pageView pageView与fragment的实现有相似之处,但代码臃肿,同时易被侧滑手势干扰 为textView添加边框 有两种方式1使用资源文件布局,为textView直接添加背景src 操作简单 2使用自定义view绘制矩形框,Draw绘制函数使用左上 右下两点坐标确定,实际上是矩形四条边对边界的位置. relat…
环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块->linux内核驱动->hal层->jni->android framework层->android app做个简单的介绍. 1.芯片及硬件模块 就像人脑,电脑的cpu一样,android手机也需要一个中央处理器,那便是主控芯片.一般电脑的cpu是intel或者amd的,但是and…
Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1,学习Android开发的第一步就是搭建Android的开发环境,博客园里面有不少人也写了关于如何搭建Android开发环境的文章,我也看…
原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/8113183   1.基本概念 1.1 Android简介         2007年11月,Google推出移动操作系统Android,并宣称Android是首个为移动终端打造的真正开放和完整的移动操作系统.自此,基于And…
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果:   建立主Activity:OtherActivity.java [java]  package wwj.otherActivity;    import android.os.Bundle;  import android.app.Activity;  import android.app.LauncherActivity;  import android.conten…
Android开发学习路线分享.Android发展主导移动互联发展进程,在热门行业来说,Android开发堪称火爆,但是,虽然Android有着自身种种优势,但对开发者的专业性要求也是极高,这种要求随着Android进一步发展慢慢体现!下面针对Android培训开发设定了一条Android开发最佳学习路线: 学习基础开发语言 学习基础开发语言是针对零基础学员学习Android开发课程设定的,当然了Android开发环境配置是最为根本的,需要根据环境需要,配置android开发环境.在配置好And…
  终于把该忙的事情都忙得差不多了,接下来又可以开始good good study,day day up了.在Android开发学习之路–基于vitamio的视频播放器(一)中,主要讲了播放器的界面的简单实现,以及扫描视频文件,获取视频文件的部分信息,还没开始讲解如何使用vitamio这个库,这里就开始讲解下最简单的使用方法吧. 1.接口的简单使用   layout界面: <?xml version="1.0" encoding="utf-8"?> &l…
  最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路–NDK.JNI之初体验. 1.ffmpeg编译   进入正题,既然是ffmpeg的移植编译,那么就先下载ffmpeg,https://ffmpeg.org/download.html#releases.这里下载的是3.0.3版本.   新建ffmpeg文件夹,然后新建脚本用来编译ffmpeg,命名为…
一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载xampp,然后安装之类的就不再多讲了,参考http://cnbin.github.io/blog/2015/06/05/mac-an-zhuang-he-shi-yong-xampp/.安装好后,启动xampp,之后在浏览器输入localhost或者127.0.0.1就可以看到如下所示了: 这个就…
环境也搭建好了,android系统也基本了解了,那么接下来就可以开始学习android开发了,相信这么学下去肯定可以把android开发学习好的,再加上时而再温故下linux下的知识,看看android源码,终有一天可以让自己提高到另外一个高度. 好了,言归正传,真正地开始android开发学习之路了. 相信很多人都知道android四大组件,它们分别是活动(Activity),服务(Service),广播接收器(Broadcast Receiver)和内容提供器(Content Provide…
自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门了,但是很多的知识点都是零零散散的,也缺少了总结. 相信凭借着对于linux内核层,android framework层的熟悉,加上也写过简单的应用,对于之后的android开发学习之路会事倍功半. 要学android,先要学java,但是光光从学java开始,会让很多人还没动手之前就失去了兴趣,所…
python自动化开发学习 进程, 线程, 协程   前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这样反复执行下去,表面上看每个任务都是交替执行的,但是由于CPU速度太快,让我们觉得所有任务是在同时执行一样.真正的并行执行多任务只能在多核CPU上,但是由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把多任务轮流调度到每个核心上运行. 多任务的实现有三种方式: 多进程模式 多线程模式 多…
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开发学习之路-下拉刷新怎么做? 本篇是接着上面三篇之后的一个对RecyclerView的介绍,这里多说两句,如果你还在使用ListView的话,可以放弃掉ListView了.RecyclerView自动帮我们缓存Item视图(ViewHolder),允许我们自定义各种动作的动画和分割线,允许我们对It…
Android开发学习方法: Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大.因此,一个好的学习方法对我们学习Android开发很重要. 在此建议,各位同学采取循序渐进.将大目标分解成多个小目标,逐步达成对Android开发的全面掌握.例如,可以先从Android的应用开发开 始,等到对应用掌握的比较熟悉了,开始慢慢阅读一些Android 应用框架层的源代码,然后再渐渐往下去了解Android的JNI.Libraries.Dalvik虚拟机.H…
驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) 文档里写道: Uboot.lds文件中起始地址是0x00,但是config.mk中的TEXT_BASE是0x57e00000,但是生成的uboot反汇编文件中,为什么start.s的第一条指令地址也是0x57e00000?不应该是0x00么?因为start.s的加载地址和运行地址都是0x00啊!? 答:Ubo…
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个一直梦想走技术流的再疯狂一次.2014.08.06. 直奔主题——>android开发学习笔记001…
原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/8147328 MapView是ArcGIS Runtime SDK forAndroid的核心组件,通过MapView可以呈现地图服务的数据,并且在MapView中定义了丰富的属性.方法和事件,用户通过Map…