android

最新文章

(转)Android 5.1.1 源码目录结构

转自:http://blog.csdn.net/tfslovexizi/article/details/51888458最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水,啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查看源码,才有更深入的了解。android有成千上万,说太少了,是成百万上亿的代码,当然要全部都了

boa移植到android系统

参考网址:https://blog.csdn.net/u011311586/article/details/51037240注意事项:1、编译要交叉编译2、编译要添加成 -static3、修改cgi访问路径char str[]="/IntelligentCabinetAPIServer"; char *p=NULL; p=strstr(req->request_uri,str); if(p)

理解RxJava里Observables的相关类型

Observable — Operator — ObserverObservable,可观察者,它就好像扬声器一样,做一些处理后发射出一些值。Operator,操作符,它就像翻译员那样将数据从一种形式翻译/修改为另一种形式。Observer,观察者,它获得那些由可观察者发射出来的或者有操作符转译的值。它们的关系如图: RxJava可观察类型在RxJava的可观察类型如下

Android Studio 3 .gitignore的通用配置

#built application files*.apk*.ap_# files for the dex VM*.dex# Java class files*.class# generated filesbin/gen/# Windows thumbnail dbThumbs.db# OSX files.DS_Store# Android Studio*.iml.idea.gradlebuild

Android Studio 3配置自动导入包Auto Import

在Windows Android Studio提示导入的快捷键:Ctrl+Alt +O。配置自动导入Auto ImportFile -> Settings -> Editor -> General -> Auto Import在右侧窗口Java配置下:把Insert imports on paste的值改为All勾选Add unambigious imports on th

Android指定SnackBar在屏幕的位置

Snackbar 常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方,并且是在屏幕所有层的最上方。如果要指定它在屏幕出现的位置,可以把SnackBar放置在android.support.design.widget.CoordinatorLayout内。在RelativeLayout里添加CoordinatorLayout如下:<android.support.design.widg

Android获取view的绝对坐标

Android提供了两种方法来获取视图的绝对坐标:void getLocationOnScreen (int[] outLocation):获取视图在屏幕的坐标void getLocationInWindow (int[] outLocation):获取视图在Activity窗口的坐标这两个方法都是接收一个数组作为参数,获取的x,y值会存

Android无损压缩图片方法

这是把图片以无损的方式压缩。public String compressImage(String imageUri) { String filePath = getRealPathFromURI(imageUri); Bitmap scaledBitmap = null; BitmapFactory.Options options =

Android Room的用法

SQLite是Android内置的轻量级关系型数据库,但直接使用SQLite core包做数据库操作有以下劣势:需要编写长且重复的代码,这会很耗时且容易出错。管理SQL困难,特别对于复杂的数据库结构。Room是在这样的背景下应运而生。Room充当现有SQLite API的抽象层。 SQLiite API所有必需的包,参数,方法和变量都使用简单的注释Annot

如何正确实现Android启动屏画面(避免白屏)

Android启动屏不正确的实现可能会导致用户长时间等待,或者可能会出现黑白屏。这里简单演示如何正确实现Android启动屏。演示分为以下几个步骤:在res/drawable文件夹中创建splash_background.xml文件。编辑res/values/styles.xml创建java/.../SplashActivity编辑manifests/AndroidManifest.xml1、在r

更改Android App的名称

在AndroidManifest.xml修改android:label可以修改Android应用的名称。<application     android:label="@string/turns_up_in_manage_apps" >     <activity &nb

Android使用DiffUtil智能地更新RecyclerView

DiffUtil是一个工具类,它会找出两个列表的差异,输出一个更新列表,并且可以用来通知RecyclerView的Adapter更新。使用DiffUtil会使用DiffUtil.Callback来计算两个列表的差异,其中DiffUtil.Callback是一个抽象类,需要我们实现它,它包含了四个抽象方法和一个非抽象方法:getOldListSize():获取旧列表的大小getNewListSize

使用RecyclerView和LayoutAnimation给列表添加进入动画

这里讲解下使用RecyclerView和LayoutAnimation给列表添加进入动画。分为三个步骤:给列表项添加动画使用列表项的动画定义LayoutAnimationRecyclerView应用LayoutAnimation的动画使用LayoutAnimation定义动画的好处是,它是单独定义,可以应用于任何ViewGroup的子类。这里是以RecyclerView为示例。示例效果示例是一个向

使用Robolectric写Android单元测试

Robolectric是一个单元测试框架,运行在jvm上。相对于在Android模拟器或设备上运行测试需要花费一分甚至更长时间,Robolectric只需要几秒钟。这里简单介绍下使用Robolectric做单元测试。添加依赖首先在build.gradle添加Robolectric依赖,并设置android的测试选项unitTests.includeAndroidResources为truetest

Android 7.0使用FileProvider获取相机拍照的图片路径

这里主要是基于Android 7.0,Nougat 实现一个获取相机拍照的图片后,使用FileProvider把图片转换为实际的路径。首先需要在AndroidManifest.xml声明调用相机的权限<manifest> ...       <uses-feature android:name=&qu

Android使用Fresco加载图片的用法

在Android的App开发中,延时加载图片是硬需求。有好几个开源的项目也提供了延时加载图片的功能,常用的有:Fresco,Glide和Universal Image Loader。这里主要简单介绍下Fresco。添加依赖在build.gradle添加依赖如下:dependencies {   ...    compi

RecyclerView添加点击事件监听器

实现RecyclerView.OnItemTouchListener的项目触摸监听器:import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.GestureDetector; import android.view.M

基于RxJava和Kotlin封装类处理网络加载数据

在Android开发里,常常需要处理网络加载数据,这里基于RxJava,和Kotlin的Sealed class(封装类)的特性实现的一个示例。Resource.kt首先使用Kotlin的sealed class实现Resource.kt,它用来包装数据和状态。sealed class Resource<out T> { &n

Adnroid Stuido格式化整个项目快捷键

Android Studio在Windows下对文件代码进行格式化的快捷键:Ctrl + Alt + L 如果需要格式化整个目录下的代码:Android Studio的代码结构切换为Project模式。在需要格式化的目录上右键选择Reformat code快捷键:选中需要格式化代码的目录,使用格式化代码快捷键:Ctrl 

Android保存及恢复Activity的状态

Android保存Activity状态有两种方式:activity保存以及持久化保存。这里主要介绍activity保存。保存Activity状态基于Activity保存状态需要重写onSaveInstanceState(Bundle savedInstanceState)方法。示例:@Override public void onSaveInstanceState(B

Kotlin使用kotlin-kapt插件支持Android的注解处理

在Kotlin可以使用kapt插件来支持Android的注解处理。在Gradle配置kotlin-kapt插件如下:在app的build.gradle添加插件apply plugin: 'kotlin-kapt' 使用kapt添加注解依赖java使用annotationProcessor 添加的依赖改为使用kapt。例如添加dagger依赖dependencies {

Android使用LiveData替换ObservableField做Data Binding

Android Studio 3.1 Canary 6 开始支持使用LiveData做Data Binding。这里简单介绍下使用LiveData替换ObservableField做Data Binding(开发语言为kotlin)。环境准备1、安装Android Studio 3.1 Canary

使用sdkmanager命令行工具安装Android SDK

在使用持续集成工具(如jenkins,travis ci)对android做自动部署时,我们不能像在Android Studio那样使用SDK Manager的GUI界面来安装Android SDK。这种情况下,我们需要使用android命令行工具或者sdkmanager命令行工具来管理Android SDK。这里介绍一下sdkmanager命令行

Android使用InputMethodManager显示和隐藏软键盘

Android主要用InputMethodManager来对软键盘进行管理。手动显示或隐藏软键盘前需要先获取InputMethodManager。InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm&

Android使用Kotlin新特性Parcelize序列化对象

Android对对象序列化主要有两种方式:Serializable和Parcelable。Serializable实际是使用Java的放射机制对对象做序列化和反序列化,其性能远低于使用Parcelable。但是使用Java写的Parcelable有点繁琐,需要我们实现Parcelable接口,手写很多模板代码。Java版Parcelable示例public class User

Android使用CountDownTimer实现倒计时示例(Kotlin)

CountDownTimer是一个抽象类,它的构造函数为CountDownTimer(long millisInFuture, long countDownInterval) millisInFuture:倒计时的总时间,从调用start()方法开始。毫秒数countDownInterval:倒计时的时间间隔。毫秒数。CountDownTimer主要有四个方法:syn

使用ANDROID_ID唯一标识Android设备

使用Settings.Secure#ANDROID_ID 会返回每个用户唯一的64位hex字符串,它是在设备首次boot时生成。我们可以使用它来唯一标识Android设备。import android.provider.Settings.Secure; private String android_id = Secure.getString(ge

Android:解决android.os.NetworkOnMainThreadException问题

原因当应用在主线程执行网络操作时会抛出此异常android.os.NetworkOnMainThreadException。解决方法把执行网络的操作的代码放到AsyncTask里可以避免此问题。示例:class MyConnectTas extends AsyncTask {     @Override  &

[译]Android UI设计与样式——dp和sp

朋友们,最近我一直在做一些Android UI设计和样式的培训课程。 我想和更多观众分享。 这是我的第一个android ui设计和样式教程。 我将在这个主题上写更多的内容。 那么现在开始吧...DP, SP & Pixels作为Android开发人员,我们始终希望我们的UI设计与设备无关。