精华内容
参与话题
问答
  • 7个代表性的Android应用程序完整源代码

    万次下载 热门讨论 2011-06-14 15:04:30
    7个比较具有代表性的Android应用程序源代码!
  • 安卓 Android之开发简单小应用(一)

    万次阅读 多人点赞 2018-06-23 14:52:09
    安卓 Android之开发简单小应用(一) 一、简述  记 --没学过Android之开发简单小应用。(课程设计作业)  例子打包:链接:https://pan.baidu.com/s/1LEQ1oWkUX8OmtfCFVydxWQ 密码:9o0d 二、环境搭建 软件打包:...

    安卓 Android之开发简单小应用(一)

    一、简述

        记 --没学过Android之开发简单小应用。(课程设计作业)

        例子打包:链接:https://pan.baidu.com/s/1LEQ1oWkUX8OmtfCFVydxWQ 密码:9o0d

    二、环境搭建

    软件打包:链接:https://pan.baidu.com/s/1VVsZqPrwOtvMuzeeJE1y_A 密码:qspp

    下载解压即可

    1、安装JDK  (默认即可)

    2、设置环境变量

          2.1右键计算机--》属性--》高级系统设置--》高级--》环境变量

           2、2 新建变量名【ClassPath】,其值可设为 【.;%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar】。前面有个.

    (如果使用1.5以上版本的JDK,不用设置CLASSPATH环境变量,也可以正常编译和运行Java程序。)

           2、3找到Path变量,点击【编辑】,在变量值最前面加上【%JAVA_HOME%/bin;】后面有个分号“;”

    注意:记得点击确定

    补充:使用命令脚本设置环境变量,将一下内容保存为xxx.bat或xxx.cmd,然后双击运行(可能需要管理员权限)。

       (记得JAVA_PATH环境变量的值是JDK的实际安装路径,需要根据实际情况进行更改)

    ::先删除之前的JAVA_HOME(防止歧义)
    wmic ENVIRONMENT where "name='JAVA_HOME'" delete
    ::先删除之前的ClASSPATH 
    wmic ENVIRONMENT where "name='CLASSPATH'" delete
    ::创建名称为JAVA_HOME的系统环境变量, VariableValue :是JDK的安装路径
    wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="C:\Program Files (x86)\Java\jdk1.7.0_45"
    ::备份Path环境变量(防止改错了)
    echo %Path%>Path.txt
    ::在系统环境变量Path中增加关于java的环境变量
    wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue=".;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin" 
    ::创建CLASSPATH系统环境变量 (听说这个可以不加)
    wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar;" 
    ::暂停一下
    pause

    3、打开ADT (不用安装,解压后打开即用)     ADT:Android Developer Tools 安卓开发者工具

    三、新建一个工程

    然后一直点击"Next",直到点击"finish"完成。

    没有创建过虚拟设备的(模拟手机设备),需要新建。(有创建过的可以不用再创建,当然也可以进行修改虚拟设备的型号)

    四、运行项目

    右击项目--》Run As--》Andriod Application

    启动虚拟设备时信息输出

    成功启动之后,自动运行刚才运行的应用

    在项目文件下的bin 目录生成对应的.apk文件,可以直接安装到安卓手机

    五、总结

    1、启动虚拟设备之后,修改了代码,需要再次Run As程序,需要在虚拟设备中退出该应用,因为每Run As一次就会安装一次,先退出上一个版本的应用,再安装,否则可能安装失败。(不用退出虚拟设备,每一开启虚拟设备太耗时间)

    2、调试信息输出,比如说System.out.println("程序已经执行到这里了");默认是看不到的输出信息的,需要设置,(可能需要重启ADT方可生效)

    3、设置中文输入

    4、新建activity(新建一个页面)

    5、实现页面跳转并在第二个页面关闭时想第一个页面传递数据

        5.1在第一个页面添加一个按钮(直接拖拽到相应的布局文件即可)(就是打开)

    注:直接修改文本会有一个叹号,可以使用string.xml,这样就不会有叹号

     

       

     5.2写代码从第一个界面跳转到第二个界面

        5.3第一个界面对应的代码为MainActivity.java

      5.4跳转代码

    5.5当第二个页面关闭返回时的处理代码

    5.6编写第二个页面的代码(TwoActivity.java)

    5.7效果:

    6、设置app的名字

    7、导入已存在的项目

    8、设置字体

    展开全文
  • android应用开发入门

    千次阅读 2011-11-17 23:04:21
    1.Android是什么?  Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 ——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与...
             1.Android是什么?
    

            Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 ——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。

    Android 作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。

             2.环境配置和安装

            网上一搜一大堆,大家自己找吧。比较简单。

              3.Android系统架构



              3.1 Linux内核(Linux Kernel)

        * Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。

        * Linux 内核是硬件和软件层之间的抽象层。  

       3.2中间件

        * 中间件包括两部分:核心库和运行时(libraries & Android runtime)

        * 核心库包括,SurfaceManager显示系统管理库,负责把2D3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit浏览器引擎等。

        * Dalvik虚拟机:区别于Java虚拟机的是,每一个Android应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。

           应用程序框架(Application Framework)  

        * 丰富而又可扩展性的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(text boxes),按钮( buttons),可嵌入的web浏览器。

        * 内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

        * 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。

        * 通知管理器(Notification Manager使得应用程序可以在状态栏中显示自定义的提示信息。

        * 活动管理器( Activity Manager用来管理应用程序生命周期并提供常用的导航回退功能。

      3.3应用程序 (Applications)

          * Android系统会内置一些应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。


      4. Android系统包说明

      android.app :提供高层的程序模型、提供基本的运行环境

      android.content :包含各种的对设备上的数据进行访问和发布的类

      android.database :通过内容提供者浏览和操作数据库

      android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.

      android.location :定位和相关服务的类

      android.media :提供一些类管理多种音频、视频的媒体接口

      android.net :提供帮助网络访问的类,超过通常的Java.net.* 接口

      android.os :提供了系统服务、消息传输、IPC 机制

      android.opengl :提供OpenGL 的工具

      android.provider :提供类访问Android 的内容提供者

      android.telephony :提供与拨打电话相关的API 交互

      android.view :提供基础的用户界面接口框架

      android.util :涉及工具性的方法,例如时间日期的操作

      android.webkit :默认浏览器操作接口

      android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用

                 4. Android项目工程说明

      

                 src        存放java源代码。

      gen      存放编译器自动生成的java代码,这个目录下的文件是系统自动维护的。

      assets 存放在这个目录下的文件,无论是mp3还是图片,都会被打包到发布包中。

      res      资源文件目录,添加到这个目录下的文件都会在gen下的R.ava文件中显示出来;如果res下存放的资源在应用中没有使用到,那么在gen下的R.java的文件中就不会显示,那么打包的时候就不会将这部分资源打包,减少了应用的发布文件大小。

      drawable:存放图片文件,注意图片名称必须是[a-z0-9_.]组成;drawable目录下不能分子级目录,只能通过命名方法来加以区分。

      layout:存放与UI相关的布局文件,都是xml文件。

      raw      直接复制到设备中的任意文件,不会被编译,可以放数据库文件。

      values 存放字符串,颜色,数组等常量数据。可以任意命名,但是通常命名:color.xmlstrings.xmlarray.xmlstyles.xmldimens.xml(定义尺寸值:dimension value)

      xml      任意的XML文件,在运行时可以通过调用Resources.getXML()读取。

                   6.最好的学习资源。

                   最好的最基本的学习资料无疑是SDK的文档了,也就是这个地方(http://code.google.com/intl/zh-CN/android/documentation.html)的介绍,它循序渐进的介绍了Android的各个方面。

    展开全文
  • Android应用开发(一)

    千次阅读 2019-08-12 16:24:06
    应用Android未来的使用趋势,其优势在于免安装,渲染能力强,使用原生系统的能力强,H5实时更新等。 在华为2019的开发者大会中也是吹了一把快应用,快服务的使用,以后在鸿蒙系统中也会支持这种快速开发,高效...

    快应用是Android未来的使用趋势,其优势在于免安装,渲染能力强,使用原生系统的能力强,H5实时更新等。

    在华为2019的开发者大会中也是吹了一把快应用,快服务的使用,以后在鸿蒙系统中也会支持这种快速开发,高效,资源占用率低,免安装的快应用模式。

    下面是传统APP,H5APP,混合APP,小程序等使用对比

    从上图也可以看出,各手机厂商制定了快应用标准,就是为了死磕上去年和前年比较火的微信小程序

    现在小程序已经有了一席之地了,快应用还没有怎么被用户所知

    那就要吐槽一下快应用的使用入口了,几乎所有的手机快应用入口都在应用商店里去找,平时也没有看到各手机商在销售时有过介绍什么的。用户不仔细找都没发现有....

    那么就干起来吧:

    开发要求,必须有一些JS基础,不要求能写的有多华丽,但是比较基础的HTML JS CSS代码可以看得懂,后面使用到的知识再慢慢学习补上了了。

    第一步:欲善其工,先利其器,环境搭起来先

    1、安装Node.js环境,Node.js官网地址:https://nodejs.org/en/ 

    2、下载华为快应用开发IDE,Win地址:https://obs.cn-north-2.myhwclouds.com/hms-ds-wf/sdk/DevecoFastAppIDE-V1.4.1-Win64.exe

    MAC地址:https://obs.cn-north-2.myhwclouds.com/hms-ds-wf/sdk/DevecoFastAppIDE-20190706-V1.4.dmg

    3、安装到*****目录下,开始嗨起来。

    第二步:连接手机

    手机打开开发者模式,连接手机。介绍说也可以局域网连接,但是我一直没有尝试成功,也不知道为什么,可能是我的手机不是华为的?一直提示设备已离线。emmm......

    那就用线连接吧。头大

    连上手机后,点击这图标就可以实时预览手机的画面啦????

    华为官网是这样介绍的,但是我没有运行在华为手机上,导致页面一直在刷新,而且开启之后跑项目可以进入调试界面

    页面有点类似浏览器的F12,啊,本来就是同一个东西好伐!

     

    第三 创建自己的应用(对,我就写在第三步怎么了,我自己第二步就先搞了)

    1、填入各项信息,什么包名啊,项目名啊,Android开发的小伙伴最熟悉了,就不多写了。

    2、新建时可以看到有一大推模式可以选择,一大堆已经写好的常用应用视图框架,秉着对hello world传统的尊重,我们就

    3、新建了Hello world工程,毕竟越简单,越容易看出架构最原始的样子。

    4、进去之后还有各种组件库可以直接拖拽,这也太方便了吧,看来以后不用熬夜写代码了,对,大家都要失业了。

    还是跑一下项目先吧。

    emmm....需要先按照华为的快应用加载器(一部手机只能加载一个快应用加载器)

    5、安装成功之后,很快就跑起来了!

    6、这时我们注意到好多IDE右下角有很多组件,我们随便加几个进去,编译(啊,也太快了吧,突然有点嫌弃AndroidStudio,哭唧唧,项目大了有时居然给我编译个7、8分钟,信不信我砸了你,呃,跑偏了!),各个页面的切换真的很流畅。

    快应用是否以后真的可以真正代替Android原始APP。这次真的是有点头大,虽然一开始小程序也是这么喊的,干掉原生,混合APP也是这么喊的,干掉原生,现在快应用也加入了这个行列,显然快应用要比前两者做的好,但是弊端就是只能做Android,IOS开发者还是要写一套自己的原生代码,这个就有点比不过前两者的快速开发(什么快速开发,其实就是老板想节省点钱,把两个人的工作量交给一个人,两个平台共同维护一套代码,其实写起来页面什么的也是很操蛋)。

     

     

     

    那么第一部分就先到这里了,后面继续摸索学习,毕竟华为号称3天就可以完成一个APP的开发,虽然我们大多数开发节奏没这么快,但是快应用突出就是快字,是否可以替代原生拭目以待了。(看来要失业了......)

    下一篇我们看看项目框架具体是如果分布的。

     

     

     

     

     

     

     

     

    展开全文
  • 大家好,发现半年没有更新博客了,最近一直都比较忙,决定在凌晨 英超 阿森纳VS富勒姆 中场休息的时候,给大家分享Android应用版本更新功能这一块的实现。 一个好的应用软件都是需要好的维护,从初出版本到最后...

    http://blog.csdn.net/android_tutor/article/details/7015986

    大家好,发现半年没有更新博客了,最近一直都比较忙,决定在凌晨 英超 阿森纳VS富勒姆 中场休息的时候,给大家分享Android里应用版本更新功能这一块的实现。

    一个好的应用软件都是需要好的维护,从初出版本到最后精品,这个过程需要版本不停的更新,那么如何让用户第一时间获取最新的应用安装包呢?那么就要求我们从第一个版本就要实现升级模块这一功能。

    自动更新功能的实现原理,就是我们事先和后台协商好一个接口,我们在应用的主Activity里,去访问这个接口,如果需要更新,后台会返回一些数据(比如,提示语;最新版本的url等)。然后我们给出提示框,用户点击开始下载,下载完成开始覆盖安装程序,这样用户的应用就保持最新的拉。

    为了让大家容易理解,我像往常一样准备一个小例子,这里为了方便我就省去了和后台交互部分了。步骤分别如下:

    第一步:新建一个Android工程命名为:UpdateDemo.代码结构如下图所示:

    第二步:新建一个UpdateManager.java类,负责软件更新功能模块,代码如下:

    1. package com.tutor.update;  
    2.   
    3. import java.io.File;  
    4. import java.io.FileOutputStream;  
    5. import java.io.IOException;  
    6. import java.io.InputStream;  
    7. import java.net.HttpURLConnection;  
    8. import java.net.MalformedURLException;  
    9. import java.net.URL;  
    10.   
    11.   
    12. import android.app.AlertDialog;  
    13. import android.app.Dialog;  
    14. import android.app.AlertDialog.Builder;  
    15. import android.content.Context;  
    16. import android.content.DialogInterface;  
    17. import android.content.Intent;  
    18. import android.content.DialogInterface.OnClickListener;  
    19. import android.net.Uri;  
    20. import android.os.Handler;  
    21. import android.os.Message;  
    22. import android.view.LayoutInflater;  
    23. import android.view.View;  
    24. import android.widget.ProgressBar;  
    25.   
    26. public class UpdateManager {  
    27.   
    28.     private Context mContext;  
    29.       
    30.     //提示语  
    31.     private String updateMsg = "有最新的软件包哦,亲快下载吧~";  
    32.       
    33.     //返回的安装包url  
    34.     private String apkUrl = "http://softfile.3g.qq.com:8080/msoft/179/24659/43549/qq_hd_mini_1.4.apk";  
    35.       
    36.       
    37.     private Dialog noticeDialog;  
    38.       
    39.     private Dialog downloadDialog;  
    40.      /* 下载包安装路径 */  
    41.     private static final String savePath = "/sdcard/updatedemo/";  
    42.       
    43.     private static final String saveFileName = savePath + "UpdateDemoRelease.apk";  
    44.   
    45.     /* 进度条与通知ui刷新的handler和msg常量 */  
    46.     private ProgressBar mProgress;  
    47.   
    48.       
    49.     private static final int DOWN_UPDATE = 1;  
    50.       
    51.     private static final int DOWN_OVER = 2;  
    52.       
    53.     private int progress;  
    54.       
    55.     private Thread downLoadThread;  
    56.       
    57.     private boolean interceptFlag = false;  
    58.       
    59.     private Handler mHandler = new Handler(){  
    60.         public void handleMessage(Message msg) {  
    61.             switch (msg.what) {  
    62.             case DOWN_UPDATE:  
    63.                 mProgress.setProgress(progress);  
    64.                 break;  
    65.             case DOWN_OVER:  
    66.                   
    67.                 installApk();  
    68.                 break;  
    69.             default:  
    70.                 break;  
    71.             }  
    72.         };  
    73.     };  
    74.       
    75.     public UpdateManager(Context context) {  
    76.         this.mContext = context;  
    77.     }  
    78.       
    79.     //外部接口让主Activity调用  
    80.     public void checkUpdateInfo(){  
    81.         showNoticeDialog();  
    82.     }  
    83.       
    84.       
    85.     private void showNoticeDialog(){  
    86.         AlertDialog.Builder builder = new Builder(mContext);  
    87.         builder.setTitle("软件版本更新");  
    88.         builder.setMessage(updateMsg);  
    89.         builder.setPositiveButton("下载"new OnClickListener() {           
    90.             @Override  
    91.             public void onClick(DialogInterface dialog, int which) {  
    92.                 dialog.dismiss();  
    93.                 showDownloadDialog();             
    94.             }  
    95.         });  
    96.         builder.setNegativeButton("以后再说"new OnClickListener() {             
    97.             @Override  
    98.             public void onClick(DialogInterface dialog, int which) {  
    99.                 dialog.dismiss();                 
    100.             }  
    101.         });  
    102.         noticeDialog = builder.create();  
    103.         noticeDialog.show();  
    104.     }  
    105.       
    106.     private void showDownloadDialog(){  
    107.         AlertDialog.Builder builder = new Builder(mContext);  
    108.         builder.setTitle("软件版本更新");  
    109.           
    110.         final LayoutInflater inflater = LayoutInflater.from(mContext);  
    111.         View v = inflater.inflate(R.layout.progress, null);  
    112.         mProgress = (ProgressBar)v.findViewById(R.id.progress);  
    113.           
    114.         builder.setView(v);  
    115.         builder.setNegativeButton("取消"new OnClickListener() {   
    116.             @Override  
    117.             public void onClick(DialogInterface dialog, int which) {  
    118.                 dialog.dismiss();  
    119.                 interceptFlag = true;  
    120.             }  
    121.         });  
    122.         downloadDialog = builder.create();  
    123.         downloadDialog.show();  
    124.           
    125.         downloadApk();  
    126.     }  
    127.       
    128.     private Runnable mdownApkRunnable = new Runnable() {      
    129.         @Override  
    130.         public void run() {  
    131.             try {  
    132.                 URL url = new URL(apkUrl);  
    133.               
    134.                 HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
    135.                 conn.connect();  
    136.                 int length = conn.getContentLength();  
    137.                 InputStream is = conn.getInputStream();  
    138.                   
    139.                 File file = new File(savePath);  
    140.                 if(!file.exists()){  
    141.                     file.mkdir();  
    142.                 }  
    143.                 String apkFile = saveFileName;  
    144.                 File ApkFile = new File(apkFile);  
    145.                 FileOutputStream fos = new FileOutputStream(ApkFile);  
    146.                   
    147.                 int count = 0;  
    148.                 byte buf[] = new byte[1024];  
    149.                   
    150.                 do{                   
    151.                     int numread = is.read(buf);  
    152.                     count += numread;  
    153.                     progress =(int)(((float)count / length) * 100);  
    154.                     //更新进度  
    155.                     mHandler.sendEmptyMessage(DOWN_UPDATE);  
    156.                     if(numread <= 0){      
    157.                         //下载完成通知安装  
    158.                         mHandler.sendEmptyMessage(DOWN_OVER);  
    159.                         break;  
    160.                     }  
    161.                     fos.write(buf,0,numread);  
    162.                 }while(!interceptFlag);//点击取消就停止下载.  
    163.                   
    164.                 fos.close();  
    165.                 is.close();  
    166.             } catch (MalformedURLException e) {  
    167.                 e.printStackTrace();  
    168.             } catch(IOException e){  
    169.                 e.printStackTrace();  
    170.             }  
    171.               
    172.         }  
    173.     };  
    174.       
    175.      /** 
    176.      * 下载apk 
    177.      * @param url 
    178.      */  
    179.       
    180.     private void downloadApk(){  
    181.         downLoadThread = new Thread(mdownApkRunnable);  
    182.         downLoadThread.start();  
    183.     }  
    184.      /** 
    185.      * 安装apk 
    186.      * @param url 
    187.      */  
    188.     private void installApk(){  
    189.         File apkfile = new File(saveFileName);  
    190.         if (!apkfile.exists()) {  
    191.             return;  
    192.         }      
    193.         Intent i = new Intent(Intent.ACTION_VIEW);  
    194.         i.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive");   
    195.         mContext.startActivity(i);  
    196.       
    197.     }  
    198. }  

    第三步:在MainActivity.java也就是主Activity调用,代码如下:

    1. package com.tutor.update;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5.   
    6. public class MainAcitivity extends Activity {  
    7.       
    8.   
    9.     private UpdateManager mUpdateManager;  
    10.     @Override  
    11.     public void onCreate(Bundle savedInstanceState) {  
    12.         super.onCreate(savedInstanceState);  
    13.         setContentView(R.layout.main);  
    14.           
    15.         //这里来检测版本是否需要更新  
    16.         mUpdateManager = new UpdateManager(this);  
    17.         mUpdateManager.checkUpdateInfo();  
    18.     }       
    19. }  

    第四步:添加程序所用的资源与权限:

    下载的时候用到了ProgressBar,所以事先写了一个progress.xml布局文件,代码如下:

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout  
    3.   xmlns:android="http://schemas.android.com/apk/res/android"  
    4.   android:layout_width="fill_parent"  
    5.   android:layout_height="wrap_content">  
    6.     
    7.   <ProgressBar  
    8.     android:id="@+id/progress"  
    9.     android:layout_width="fill_parent"  
    10.     android:layout_height="wrap_content"  
    11.     style="?android:attr/progressBarStyleHorizontal"  
    12.   />  
    13. </LinearLayout>  
    下载的时候用到了网络部分,所以要在AndroidManifest.xml中添加网络权限,代码如下:

    1. <uses-permission android:name="android.permission.INTERNET" />  

    第五步:运行查看效果如下:

         

     图一:提示有最新包                                                                                   图二:点击开始下载

    图三:下载完开始安装,我这里模拟器空间不足了。

    OK~大功告成了,继续看球,阿森纳已经0:1了,希望范大将军救驾!大家晚安~稍后将会为大家分享更多内容,尽请期待!

    源代码点击进入==>

    展开全文
  • Android应用程序开发

    2018-09-03 14:37:00
    Android应用程序开发 第一章 Android应用初体验 1.1应用基础 activity是Android SDK中Activity类的一个具体实例,负责管理用户与信息屏的交互。 应用的功能是通过编写一个个Activity子类来实现的...
  • Android应用的资源

    2019-05-31 18:49:25
    Android应用的资源(帮助你更好了解Android) 应用资源概述 Android应用资源可分为两大类 1.无法通过R资源清单访问的原生资源,保存在assets目录下。 2.可通过R资源清单类访问的资源,保存在res目录下。 资源的类型...
  • Android 将自己的应用改为系统应用

    万次阅读 2018-07-20 16:21:45
    &lt;div class="markdown_views"&gt; &lt;p&gt;转载请标明出处:&lt;a href="http://blog.csdn.net/xx326664162/article/details/53406933" rel="...
  • 几款Android 应用自动化测试工具

    万次阅读 多人点赞 2018-01-09 10:20:47
    本文介绍几款流行的 Android应用自动化测试工具。 Monkey测试:随机测试,压力测试,运行在模拟器或实际设备中。 MonkeyRunner测试:操作简单,可录制测试脚本,可视化操作,主要生成坐标的自动化操作,移植性不...
  • 如何检测Android应用是32位还是64位

    千次阅读 2019-04-11 18:24:57
    1、前言 从Android 4.4宣布支持64位系统以来,各终端方案厂商逐步推出了各自的64位soc解决...那么问题就来了,在一个64位系统的Android手机上如何检测应用是运行在32位还是64位环境?本博文将为大家解答这个问题。...
  • Android应用图标微技巧,8.0系统中应用图标的适配

    万次阅读 多人点赞 2018-03-13 07:56:38
    大家好,2018年的第一篇文章到的稍微有点迟,也是因为在上一个Glide系列...三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米、华为、OV等国产手机厂商即将推出的新年旗舰机也会搭载Android 8.0
  • C#开发Android应用实战 使用Mono for Android和.NET C# PDF扫描版,希望对你有用处。 一般下载的都7.07MB的,那个只是一个样章,这个是书的全部。
  • Android应用案例开发大全 吴亚峰等 PDF扫描版

    千次下载 热门讨论 2014-09-26 12:28:12
    Android应用案例开发大全》是以Android手机综合应用程序开发为主题 通过11个典型范例全面且深度地讲解了单机应用 网络应用 商业案例 2D和3D游戏等多个开发领域 全书共分12章 主要以范例集的方式来讲述Android的...
  • Android应用程序UI架构 高清PTT

    千次下载 热门讨论 2013-10-23 01:23:45
    Android应用程序中,每一个Activity组件都关联有一个或者若干个窗口,每一个窗口都对应有一个Surface。有了这个Surface之后,应用程序就可以在上面渲染窗口的UI。最终这些已经绘制好了的Surface都会被统一提交给...
  • Android应用底部导航栏(选项卡)实例Demo

    千次下载 热门讨论 2012-04-18 14:17:55
    Android应用底部导航栏(选项卡)实例代码http://blog.csdn.net/cjjky/article/details/7209056
  • SurfaceFlinger服务负责绘制Android应用程序的UI,它的实现相当复杂,要从正面分析它的实现不是一件容易的事。既然不能从正面分析,我们就想办法从侧面分析。说到底,无论SurfaceFlinger服务有多复杂,它都是为...
  • 为什么我们的Android系统需要今天这样的设计方案,这样的设计会有怎样的意义, Android究竟是基于怎样的考虑才变成今天的这个样子,所以本文更多的分析Android应用程序设计背后的思想,品味良好架构设计的魅力。...
  • Android应用内多进程分析和研究

    万次阅读 多人点赞 2015-11-16 19:12:01
    正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中...
  • [014] Android应用程序签名详解

    万次阅读 热门讨论 2011-05-06 23:52:00
    本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。1、什么是签名? 如果这个问题不是放在Android开发中来问,如果是放在一个普通的版本,我想...
  • Android应用的耗电量统计

    万次阅读 热门讨论 2015-07-19 20:53:59
    android “设置”中的“电量”是如何获取的?这篇文章可以带领你去阅读相关的源代码。

空空如也

1 2 3 4 5 ... 20
收藏数 793,591
精华内容 317,436
关键字:

android应用