android_android简介 - CSDN
android 订阅
安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。2014第一季度Android平台已占所有移动广告流量来源的42.8%,首度超越iOS。但运营收入不及iOS。 [1] 展开全文
安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。2014第一季度Android平台已占所有移动广告流量来源的42.8%,首度超越iOS。但运营收入不及iOS。 [1]
信息
更新时间
2019年9月4日 [2]
源码模式
自由及开放源代码软件
发行日期
2008年9月23日
软件许可
Apache License、 GPL等
创始人
安迪·鲁宾(Andy Rubin)
软件语言
C/C++(底层) Java,Kotlin等(应用层)
开发商
Google、开放手持设备联盟
发行商
Google - 谷歌(美国)
软件版本
Android 10(正式版) [2]
软件平台
Google
内核类型
宏内核(Linux内核)
测试版本
Android 11 Developer Preview 3(开发者预览版)
系统家族
类Unix,Linux
软件名称
Android(安卓)
Android系统简介
Android一词的本义指“机器人”,同时也是Google于2007年11月5日 Android logo相关图片(33张) 宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。2012年7月美国科技博客网站BusinessInsider评选出二十一世纪十款最重要电子产品,Android操作系统和iPhone等榜上有名。(Android logo 相关图片相册图片来源:)
收起全文
精华内容
参与话题
  • Android编程经典200例

    2020-07-30 23:33:19
    资源名称:Android编程经典200例内容简介:本书通过200个经典实例全面、系统地介绍了Android平台下的软件开发知识,重点突出、涉及面广、实用性强,在实例的讲解过程中还详细分析了开发思路及侧重点,使读者达到...
  • 一、Android简介

    千次阅读 多人点赞 2018-08-14 21:15:22
     从接触Android学习到开发马上就有3年了,讲道理是不是也该算是一个熟练的码农了(啥时候能成大牛啊),但是你问我Android都有哪些技术啊,开发过程中都有什么难点啊,好吧,我还真的不知道从何讲起,所以下定了...

    引言:

            从接触Android学习到开发马上就有3年了,讲道理是不是也该算是一个熟练的码农了(啥时候能成大牛啊),但是你问我Android都有哪些技术啊,开发过程中都有什么难点啊,好吧,我还真的不知道从何讲起,所以下定了决心,准备像各路大牛学习,坚持写博客,整理记录自己的脑子里的知识。都说写博客特别耗费时间,但是时间嘛就像女人的胸,挤挤总是会有的(坏笑)。好,不多多逼逼,下面开始...

    一、Android系统简介

    Android系统:Google公司发布的手机或者平板上的运行系统,现在最新(180814)的系统更新到了9.0吧,世界上4.03之前的系统应该没人再用了,在Android创建新项目的时候,最低版本选择4.03的时候,它就告诉我,这个选项已经含括了世界上100%的终端设备。每次大的升级都有很多新特性,接下来简单记录一下:

    1、Android 5.0

    (1)5.0之前Android系统都是运行在Dalvik虚拟机上,5.0之后运行环境是ART虚拟机,提升了运行速度。

    (2)提出Material Design设计风格来美化界面设计

      (3) .......

    2、Android 6.0

    (1)运行时权限管理

    (2)电量优化

    (3)规范化APP Link

    (4).......

    3、Android 7.0

    (1)新的Notifycations

    (2)多窗体支持(分屏模式)

    (3)随时随地低耗电

    (4)优化大型应用的安装速度

    (5)......

    4、Android 8.0

    (1)TensorFlow Lite 人工智能的尝试

    (2)画中画,在你使用的程序中可以小窗使用其他程序

    (3) Notifycations Dots 应用程序图标上出现通知小点提示,长按可查看

    (4)Play Console Dashboard 开发人员工具(还没用过,准备看看)

    (5)自定义字体终于支持了

    (6)....

    5、Android 9.0

    (1)室内wifi定位

    (2)刘海平的支持(好吧,我一直觉得很丑)

    (3)Notifycation (每个版本你都改)

    (4)通道设置,广播以及免打扰

    (5)多相机支持

    (6)新的图片解码,动画优化

    (7)....

    Android版本基本上是一年一个,哎,感觉做一个Android程序猿好累啊,每天都要学习新东西,不然很容易就被谷歌抛弃了,5.0之前的技术我就不建议大家去看了,感觉5.0以上机型基本都是最低国人配置了。好吧东西很多,写到这里发现自己要学习的东西还很多,接下来再介绍一下Android的系统架构...

    二、Android系统架构

    Android系统分为四层架构

    1、Linux内核层

        Android系统是基于Linux内核的,Android系统提供硬件的驱动,音频驱动,视频驱动,蓝牙,wifi驱动等等吧。(一般作为android应用开发,没必要学习这些东西)

    2、系统运行库层

    C/C++ 为Android提供解决一些Java代码干不好的事,比如OpenGL/ES 3D绘图,WebKit提供了浏览器内核的支持。(这个作为android开发的我们来说还是很值得学习)

    3、应用框架层

    提供Android构建程序所需要的API,我感觉就是SDK

    4、应用层

    安装在你手机上的应用程序就是组成这一层的东西了

    今天就写这么多了,我呢是被我的学长带入的Android之路(坑),当时他就和我说,Android学起来不是很难,就是学习面比较杂,要学的东西很多,现在想起来,真的是。。。放屁,要学的东西那叫超级多好么,而且我怎么没感觉到简单呢。。。

    展开全文
  • Android Studio 开发详解

    万人学习 2019-12-18 15:09:34
    Android Studio教程,该教材会详细介绍Android Studio如何使用,包括在Windows平台下载安装Android Studio、配置、代码重构、项目调试、jar包管理等。
  • 总是听到有人说AndroidX,到底什么是AndroidX?

    万次阅读 多人点赞 2019-08-26 08:06:59
    Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出技术吗?相信有很多朋友也会存在这样的疑惑,那么今天我就来写一篇科普...

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。

    Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出技术吗?相信有很多朋友也会存在这样的疑惑,那么今天我就来写一篇科普文章,向大家介绍AndroidX的前世今生。

    Android系统在刚刚面世的时候,可能连它的设计者也没有想到它会如此成功,因此也不可能在一开始的时候就将它的API考虑的非常周全。随着Android系统版本不断地迭代更新,每个版本中都会加入很多新的API进去,但是新增的API在老版系统中并不存在,因此这就出现了一个向下兼容的问题。

    举个例子,当Android系统发布到3.0版本的时候,突然意识到了平板电脑的重要性,因此为了让Android可以更好地兼容平板,Android团队在3.0系统(API 11)中加入了Fragment功能。但是Fragment的作用并不只局限于平板,以前的老系统中也想使用这个功能该怎么办?于是Android团队推出了一个鼎鼎大名的Android Support Library,用于提供向下兼容的功能。比如我们每个人都熟知的support-v4库,appcompat-v7库都是属于Android Support Library的,这两个库相信任何做过Android开发的人都使用过。

    但是可能很多人并没有考虑过support-v4库的名字到底是什么意思,这里跟大家解释一下。4在这里指的是Android API版本号,对应的系统版本是1.6。那么support-v4的意思就是这个库中提供的API会向下兼容到Android 1.6系统。它对应的包名如下:

    类似地,appcompat-v7指的是将库中提供的API向下兼容至API 7,也就是Android 2.1系统。它对应的包名如下:

    可以发现,Android Support Library中提供的库,它们的包名都是以android.support.*开头的。

    但是慢慢随着时间的推移,什么1.6、2.1系统早就已经被淘汰了,现在Android官方支持的最低系统版本已经是4.0.1,对应的API版本号是15。support-v4、appcompat-v7库也不再支持那么久远的系统了,但是它们的名字却一直保留了下来,虽然它们现在的实际作用已经对不上当初命名的原因了。

    那么很明显,Android团队也意识到这种命名已经非常不合适了,于是对这些API的架构进行了一次重新的划分,推出了AndroidX。因此,AndroidX本质上其实就是对Android Support Library进行的一次升级,升级内容主要在于以下两个方面。

    第一,包名。之前Android Support Library中的API,它们的包名都是在android.support.*下面的,而AndroidX库中所有API的包名都变成了在androidx.*下面。这是一个很大的变化,意味着以后凡是android.*包下面的API都是随着Android操作系统发布的,而androidx.*包下面的API都是随着扩展库发布的,这些API基本不会依赖于操作系统的具体版本。

    第二,命名规则。吸取了之前命名规则的弊端,AndroidX所有库的命名规则里都不会再包含具体操作系统API的版本号了。比如,像appcompat-v7库,在AndroidX中就变成了appcompat库。

    一个AndroidX完整的依赖库格式如下所示:

    implementation 'androidx.appcompat:appcompat:1.0.2'
    

    了解了AndroidX是什么之后,现在你应该放轻松了吧?它其实并不是什么全新的东西,而是对Android Support Library的一次升级。因此,AndroidX上手起来也没有任何困难的地方,比如之前你经常使用的RecyclerView、ViewPager等等库,在AndroidX中都会有一个对应的版本,只要改一下包名就可以完全无缝使用,用法方面基本上都没有任何的变化。

    但是有一点需要注意,AndroidX和Android Support Library中的库是非常不建议混合在一起使用的,因为它们可能会产生很多不兼容的问题。最好的做法是,要么全部使用AndroidX中的库,要么全部使用Android Support Library中的库。

    而现在Android团队官方的态度也很明确,未来都会为AndroidX为主,Android Support Library已经不再建议使用,并会慢慢停止维护。另外,从Android Studio 3.4.2开始,我发现新建的项目已经强制勾选使用AndroidX架构了。

    那么对于老项目的迁移应该怎么办呢?由于涉及到了包名的改动,如果从Android Support Library升级到AndroidX需要手动去改每一个文件的包名,那可真得要改死了。为此,Android Studio提供了一个一键迁移的功能,只需要对着你的项目名右击 → Refactor → Migrate to AndroidX,就会弹出如下图所示的窗口。

    这里点击Migrate,Android Studio就会自动检查你项目中所有使用Android Support Library的地方,并将它们全部改成AndroidX中对应的库。另外Android Studio还会将你原来的项目备份成一个zip文件,这样即使迁移之后的代码出现了问题你还可以随时还原回之前的代码。

    好了,关于AndroidX的内容就讲到这里,相信也是解决了不少朋友心中的疑惑。由于这段时间以来一直在努力赶《第一行代码 第3版》的进度,所以原创文章的数量偏少了一些,也请大家见谅。


    关注我的技术公众号,每个工作日都有优质技术文章推送。

    微信扫一扫下方二维码即可关注:

    展开全文
  • 上一篇博客Android-kotlin-配置/入门配置好了 AndroidStudio Kotlin 的环境; 今天做一个简单的demo实战—实现一个简单的计算器功能 1.选择包名,然后右键: 2.选择Class类型,会有class: 3.创建CounterClass: ...

    上一篇博客Android-kotlin-配置/入门配置好了 AndroidStudio Kotlin 的环境;

    今天做一个简单的demo实战—实现一个简单的计算器功能

    1.选择包名,然后右键:
    在这里插入图片描述
    2.选择Class类型,会有class:
    在这里插入图片描述

    3.创建CounterClass:

    package cn.kotlin.kotlin_oop02
    
    /**
     * 加减乘除计算的calss
     * var number1:Double 此Double是kotlin的
     * var operapor:Char  此Char是kotlin的
     */
    class CounterClass(var number1:Double, var operapor:Char, var number2:Double) {
    
        fun onCount() {
    
            // 注意:⚠️ 在真实开发者 只需要写if等方式判断 加减乘除就好了,我是为了使用when,所以才做了if判断,又做了when判断
            var whenFlag:Int = 0;
            if (operapor.equals('+')) {
                whenFlag = 1
            } else if (operapor.equals('-')) {
                whenFlag = 2
            } else if (operapor.equals('*')) {
                whenFlag = 3
            } else if (operapor.equals('/')) {
                whenFlag = 4;
            }
    
            /**
             * when可以理解为Java的switch,只是语法不同
             */
            var result:Double = 0.0;
    
            when(whenFlag){
                1 -> {
                    result = number1 + number2;
                }
                2 -> {
                    result = number1 - number2;
                }
                3 -> {
                    result = number1 * number2;
                }
                4 -> {
                    result = number1 / number2;
                }
                else -> {
                    println("${operapor}法运算过程中失败!")
                    return // 失败就不完下执行了,方法结束
                }
            }
            showResult(result)
        }
    
        /**
         * 此方法打印计算结果
         * 设置private私有,不给外面其他地方访问调用,资格本类中使用,这属于封装的一种体现
         */
        private fun showResult(result:Double) {
            println("${operapor}计算的结果是:${result}");
        }
    
    }
    

    4.选择包名,然后右键:
    在这里插入图片描述

    5.选择File类型,不会自动有class:
    在这里插入图片描述

    6.创建测试的main方法:

    package cn.kotlin.kotlin_oop02
    
    fun main(args: Array<String>) {
    
        // 加
        var c = CounterClass(9.0, '+', 9.0)
        c.onCount();
    
        // 剑
        CounterClass(100.0, '-', 50.0).onCount()
    
        // 乘
        CounterClass(10.0, '*', 10.0).onCount()
    
        // 除
        CounterClass(100.0, '/', 2.0).onCount()
    }
    

    7.执行结果:
    在这里插入图片描述

    展开全文
  • 使用kotlin写的android简单计算器demo

    千次阅读 2019-04-19 14:46:45
    使用kotlin写的android简单计算器demo,适合初入门的朋友参考使用, 完整项目代码地址:https://github.com/linwenbing/KotlinCounterDemo 1.项目代码: import android.support.v7.app.AppCompatActivity ...

    使用kotlin写的android简单计算器demo,适合初入门的朋友参考使用,

    完整项目代码地址:https://github.com/linwenbing/KotlinCounterDemo

    1.项目代码:

    import android.support.v7.app.AppCompatActivity
    import android.os.Bundle
    import android.util.Log
    import android.view.View
    import android.view.View.OnClickListener
    import android.widget.Button
    import android.widget.Toast
    import kotlinx.android.synthetic.main.activity_main.*
    
    class MainActivity : AppCompatActivity(), OnClickListener {
        private var firstNumber = ""//第一个数字
        private var nextNumber = ""//第二个数字
        private var flag = ""//计算方式
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            btn_c.setOnClickListener(this)
            btn_sign.setOnClickListener(this)
            btn_seven.setOnClickListener(this)
            btn_eight.setOnClickListener(this)
            btn_nine.setOnClickListener(this)
            btn_five.setOnClickListener(this)
            btn_four.setOnClickListener(this)
            btn_six.setOnClickListener(this)
            btn_three.setOnClickListener(this)
            btn_two.setOnClickListener(this)
            btn_one.setOnClickListener(this)
            btn_zreo.setOnClickListener(this)
            btn_multiplication.setOnClickListener(this)
            btn_subtract.setOnClickListener(this)
            btn_addition.setOnClickListener(this)
            btn_equal.setOnClickListener(this)
        }
    
        override fun onClick(v: View?) {
            doClick("" + (v as Button).text)
        }
    
        private fun  doClick(value:String){
            when(value){
                "+","-","*","÷"->{
                    if (firstNumber?.isNotEmpty() && nextNumber?.isEmpty()){
                        flag = value
                    }else if(firstNumber?.isNotEmpty() && nextNumber?.isNotEmpty()){
                        flag = value
                        doCount()
                    }
    
                }
                "=" ->{
                    if(firstNumber?.isNotEmpty() && nextNumber?.isNotEmpty()){
                        doCount()
                        flag = ""
                    }
                }
                "C" ->{
                    firstNumber = ""
                    nextNumber = ""
                    tv_show.text = ""
                    flag = ""
                }
                else ->{
                    if (flag?.isNotEmpty()){
                        if (nextNumber?.isEmpty() && value?.equals("0")){
                            Toast.makeText(this,"除数不能为0",Toast.LENGTH_SHORT).show()
                        }else{
                            nextNumber += value
                            tv_show.text = nextNumber
                        }
                    }else{
                        firstNumber += value
                        tv_show.text = firstNumber
                    }
                }
            }
        }
    
        /**
         * 计算方法
         */
        private fun doCount(){
            var result = 0.0
            when(flag){
                "+" -> result = firstNumber.toDouble()+nextNumber.toDouble()
                "-" -> result =firstNumber.toDouble()-nextNumber.toDouble()
                "*" -> result =firstNumber.toDouble()*nextNumber.toDouble()
                "÷" -> {
                    result = firstNumber.toDouble()/nextNumber.toDouble()
                }
            }
            firstNumber = result.toString()
            nextNumber = ""
            tv_show.text = result.toString()
        }
    }

    2.布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/tv_show"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="50dp"
             />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_c"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                android:text="C"
                />
            <Button
                android:id="@+id/btn_sign"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="÷"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_seven"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="7"
                />
            <Button
                android:id="@+id/btn_eight"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="8"
                />
            <Button
                android:id="@+id/btn_nine"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="9"
                />
            <Button
                android:id="@+id/btn_multiplication"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="*"
                />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_four"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="4"
                />
            <Button
                android:id="@+id/btn_five"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="5"
                />
            <Button
                android:id="@+id/btn_six"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="6"
                />
            <Button
                android:id="@+id/btn_subtract"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="-"
                />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_one"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="1"
                />
            <Button
                android:id="@+id/btn_two"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="2"
                />
            <Button
                android:id="@+id/btn_three"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="3"
                />
            <Button
                android:id="@+id/btn_addition"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="+"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            <Button
                android:id="@+id/btn_zreo"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="0"
                />
            <Button
                android:id="@+id/btn_equal"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="="
                />
        </LinearLayout>
    
    </LinearLayout>

     

    展开全文
  • 最近实验室要求写一个简单的计算器,作为安卓入门的练习,我主要是用前缀表达式变后缀表达式 关于如何转化,请查考: http://blog.csdn.net/qq_36391075/article/details/76158464在负数的...否则就是运算符。if(i !=
  • 前言: 继上次用 kotlin 编写了 一款简单 豆瓣电影 app 后。体验到了kotlin 的魅力。加上这段时间学习了 MVP 模式、MVVM模式,心痒痒,就像做个 app 来练练手,正当犹豫要选择哪一...玩Android 采用的是 LiveData+V...
  • AndroidX了解一下

    万次阅读 多人点赞 2019-10-14 17:16:46
    1.前言 我选取了几个常用依赖库,我们可以看看变化: ... AndroidX build artifact ... com.android.support:support-compat ... androidx.core:core:1.0.0+ ... com.android.support:appcompat-v7 ... androidx.appco...
  • android studio的安装,史上最详细(超多图)!!

    万次阅读 多人点赞 2020-09-21 17:41:30
    android studio的安装,史上最详细!!欢迎前来观看,感觉有用就点波关注吧!custom 欢迎前来观看,感觉有用就点波关注吧! 1、首先下载Android studio安装包,可以从 http://www.android-studio.org/ 下载最新...
  • Android常用框架

    万次阅读 2019-05-06 17:10:14
    1.缓存框架     1.1DiskLruCache:Java实现基于LRU的磁盘缓存,DiskLruCache不是google官方所写,但是得到了官方推荐,DiskLruCache没有编写到SDK中去,如需使用可直接copy这个类到项目中去。...
  • Android Studio简介

    万次阅读 2018-07-24 15:34:03
    1. Android Studio简介  Android Studio是Google推出基于IntelliJ IDEA的Android应用开发集成开发环境(IDE),而且提供了更多提高Android应用的构建效率的功能;  1) 基于Gradle的灵活构建系统  2)Instant ...
  • Android开发:shape和selector和layer-list的(详细说明)

    万次阅读 多人点赞 2020-09-30 14:49:31
    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。 1.Shape ...
  • Android Dev Tools官网地址:www.androiddevtools.cnhttps://github.com/inferjay/AndroidDevTools收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。...
  • 文章目录1、简介2、解决方案 1、简介 Android studio 有时候会出现类似的问题 2、解决方案 修改 Gradle,然后重新 sync 一下就好
  • Android keystore简介、生成、查看

    万次阅读 2018-08-21 14:58:25
    三部分keystore简介、生成方式,查看keystore信息 一、keystore简介 Keytool :是一个有效的安全钥匙和证书的管理工具,Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书; keystore:数字...
  • Android EditText设置边框

    万次阅读 2020-04-29 17:28:43
    Android EditText设置边框 简介 Android应用程序中给EditText设置边框。 效果图: 快速开始 在res/drawable目录下新建样式文件 edit_background.xml。 <?xml version="1.0" encoding="utf-8"?> <layer-...
  • Android Studio 下载 与 安装 详细步骤

    万次阅读 多人点赞 2019-02-19 08:59:56
    Android Studio 简介 Android Studio 下载 Android Studio 安装 Hello World 注意事项 Android Studio 简介 Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,...
  • Android 串口调试助手

    万次阅读 2019-01-18 15:43:36
    简介Android 串口调试助手 更多:作者 提 Bug  标签:   Android 串口调试助手 根据Android 官方提供的串口 API写的一个小工具, 没啥功能,基本也就用来调调控制板哪串口能用,发送一下简单的命令, 如果...
  • android:TableLayout表格布局详解

    万次阅读 2011-09-30 09:49:05
    这篇博文包括的内容: ...1、TableLayout简介 2、TableLayout行列数的确定 3、TableLayout可设置的属性详解 4、一个包含4个TableLayout布局的实例及效果图 一、Tablelayout简介  Tablelayo
1 2 3 4 5 ... 20
收藏数 88,460
精华内容 35,384
关键字:

android