当前位置:  编程技术>移动开发
本页文章导读:
    ▪【转】事例收藏        【转】例子收藏 Android设备信息获取:http://blog.csdn.net/wenlele/article/details/6316750   android ffmpeg  http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html   android调节亮度 http://blog.csdn.net/piaozhiye/arti.........
    ▪ 数据资源为啥要继承BaseAdapter        数据资源为什么要继承BaseAdapter      适配器的作用主要是用来给诸如(Spinner,ListView,GridView)来填充数据的。而 (Spinner,ListView,GridView)都有自己的适配器(记起来麻烦)。但是BaseAdapter(一招鲜)对.........
    ▪ 怎么计算时间复杂度       如何计算时间复杂度 求解算法的时间复杂度的具体步骤是:  ⑴ 找出算法中的基本语句;  算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。  ⑵ 计算基.........

[1]【转】事例收藏
    来源: 互联网  发布时间: 2014-02-18
【转】例子收藏

Android设备信息获取:http://blog.csdn.net/wenlele/article/details/6316750

 

android ffmpeg  http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html

 

android调节亮度 http://blog.csdn.net/piaozhiye/article/details/6544450

 

android http get post 请求:http://blog.sina.com.cn/s/blog_5da93c8f0100t174.html

 

android 抓包http://blog.csdn.net/Zengyangtech/article/details/5853366

查看抓包:http://www.newhua.com/soft/2883.htm

 

http://www.cnblogs.com/feisky/archive/2010/12/19/1910635.html

 

http://yang/www.blogjava.net/zh-weir/archive/2010/01/24/310617.html

下载资料:http://xj397400712.xunzai.com /

音乐开源项目:http://android.git.kernel.org/?p=platform/packages/apps/Music.git;a=commitdiff;h=6cb8bc92e0ca524a76a6fa3f6814b43ea9a3b30d

 

算法:http://www.iteye.com/topic/547735、http://www.iteye.com/topic/547734 、http://www.iteye.com/topic/512609、

android_SDK

 

http://www.hiapk.com/bbs/thread-2899-1-1.html

 

加载效果:http://blog.lytsing.org/archives/297.html

http://mimi.99kav.info/

http://www.xwcool.com/?p=832

 

音乐项目:http://www.iteye.com/topic/186933

GPS定位包:http://blog.csdn.net/ecaol/archive/2010/03/24/5410915.aspx

详解 Android 的 Activity 组件:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/

 

jjavaScript学习网站:http://www.w3school.com.cn/

 

 

歌词同步:http://www.blogjava.net/hadeslee/archive/2008/01/11/173489.html

 

 

使用jad及eclipse插件进行.class文件的反编译:http://blog.chinaunix.net/u/30292/showart_400060.html

 

 

SSL1 :https://www.mygreendot.com/greendot/getacardnow?utm_source=CR001&utm_medium=V101&utm_term=pebfl&utm_content=ADD-CREATIVE-ID-HERE&utm_campaign=100316311d

 

ssl2:http://android.git.kernel.org/?p=platform/packages/apps/Browser.git;a=blob;f=src/com/android/browser/BrowserActivity.java

 

ss3:http://www.iteye.com/problems/40424

 

 

商永社 18:18:44
  http://www.phonegap.com/apps
商永社 18:19:10
  http://www.sencha.com/products/touch/demos.php

 

华章培训网:http://www.hztraining.com/bbs/showtopic-29.aspx

 

多个开源:http://www.netmite.com/android/mydroid/packages/apps/



转自:http://yangguangfu.iteye.com/blog/707771

    
[2] 数据资源为啥要继承BaseAdapter
    来源: 互联网  发布时间: 2014-02-18
数据资源为什么要继承BaseAdapter

     适配器的作用主要是用来给诸如(Spinner,ListView,GridView)来填充数据的。而 (Spinner,ListView,GridView)都有自己的适配器(记起来麻烦)。但是BaseAdapter(一招鲜)对他们来说却是通用的, 为什么这么说呢,首先我们看一下API文档:

我们看一下BaseAdapter已经实现了ListAdapter和SpinnerAdapter的接口,而GridView的适配器是实现了ListAdapter接口,只不过是二维的。所以说BaseAdapter对他们三者来说是通用的。

 

下面我来说一下BaseAdapter的主要用法.就是我们定义一个类(如:MyAdapter)而这个类继承BaseAdapter.因为它是 implements了ListAdapter和SpinnerAdapter的接口,所以要实现里面的方法,代码如下(未作任何改动的):

 

[java] view plain copy
  • private   class  MyAdapter  extends  BaseAdapter{  
  •     @Override   
  •     public   int  getCount() {  
  •         // TODO Auto-generated method stub   
  •         return   0 ;  
  •     }  
  •     @Override   
  •     public  Object getItem( int  arg0) {  
  •         // TODO Auto-generated method stub   
  •         return   null ;  
  •     }  
  •     @Override   
  •     public   long  getItemId( int  position) {  
  •         // TODO Auto-generated method stub   
  •         return   0 ;  
  •     }  
  •     @Override   
  •     public  View getView( int  position, View convertView, ViewGroup parent) {  
  •         // TODO Auto-generated method stub   
  •         return   null ;  
  •     }  
  •       
  •    }  
  •  

    为了便于大家理解,老规矩写一个简单的Demo,大家按我的步骤来就OK了.

     

    第一步:新建一个Android工程命名为BaseAdapterDemo.

     

    第二步:修改main.xml代码如下:

    [java] view plain copy
  • <?xml version= "1.0"  encoding= "utf-8" ?>  
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  •     android:orientation="vertical"   
  •     android:layout_width="fill_parent"   
  •     android:layout_height="fill_parent"   
  •     >  
  •     <TextView    
  •         android:layout_width="fill_parent"    
  •         android:layout_height="wrap_content"    
  •         android:text="Welcome to Mr Wei's Blog"   
  •     />  
  •     <Spinner    
  •         android:id="@+id/spinner"   
  •         android:layout_width="fill_parent"    
  •         android:layout_height="wrap_content"   
  •     />  
  •       <ListView    
  •         android:id="@+id/listview"   
  •         android:layout_width="fill_parent"    
  •         android:layout_height="wrap_content"   
  •     />  
  •       <GridView    
  •         android:id="@+id/gridview"   
  •         android:layout_width="fill_parent"    
  •         android:layout_height="wrap_content"   
  •     />  
  • </LinearLayout>  
  • 第三步:修该BaseAdapterDemo.java代码如下:

    [java] view plain copy
  • package  com.tutor.baseadapter;  
  • import  android.app.Activity;  
  • import  android.graphics.Color;  
  • import  android.os.Bundle;  
  • import  android.view.View;  
  • import  android.view.ViewGroup;  
  • import  android.widget.BaseAdapter;  
  • import  android.widget.GridView;  
  • import  android.widget.ListView;  
  • import  android.widget.Spinner;  
  • import  android.widget.TextView;  
  • public   class  BaseAdapterDemo  extends  Activity {  
  •      
  •     private  Spinner mSpinner;  
  •     private  ListView mListView;  
  •     private  GridView mGridView;  
  •     private  MyAdapter mMyAdapter;  
  •     @Override   
  •     public   void  onCreate(Bundle savedInstanceState) {  
  •         super .onCreate(savedInstanceState);  
  •         setContentView(R.layout.main);  
  •         setupViews();  
  •     }  
  •       
  •     public   void  setupViews(){  
  •         mMyAdapter = new  MyAdapter();  
  •         mSpinner = (Spinner)findViewById(R.id.spinner);  
  •         mSpinner.setAdapter(mMyAdapter);  
  •         mListView = (ListView)findViewById(R.id.listview);  
  •         mListView.setAdapter(mMyAdapter);  
  •         mGridView = (GridView)findViewById(R.id.gridview);  
  •         mGridView.setAdapter(mMyAdapter);  
  •         mGridView.setNumColumns(2 );  
  •       
  •     }  
  •       
  •     //定义自己的适配器,注意getCount和getView方法   
  •     private   class  MyAdapter  extends  BaseAdapter{  
  •         @Override   
  •         public   int  getCount() {  
  •             // 这里我就返回10了,也就是一共有10项数据项   
  •             return   10 ;  
  •         }  
  •         @Override   
  •         public  Object getItem( int  arg0) {  
  •             return  arg0;  
  •         }  
  •         @Override   
  •         public   long  getItemId( int  position) {  
  •             return  position;  
  •         }  
  •         @Override   
  •         public  View getView( int  position, View convertView, ViewGroup parent) {  
  •             // position就是位置从0开始,convertView是Spinner,ListView中每一项要显示的view   
  •             //通常return 的view也就是convertView   
  •             //parent就是父窗体了,也就是Spinner,ListView,GridView了.   
  •             TextView mTextView = new  TextView(getApplicationContext());  
  •             mTextView.setText("BaseAdapterDemo" );  
  •             mTextView.setTextColor(Color.RED);  
  •             return  mTextView;  
  •         }  
  •           
  •     }  
  • }  
  •  

    第四步:运行程序效果图如下:

    效果图一:

     

    效果图二:

     

     

    等等,平时我在这里就和大家告别了,今天还没完呵呵,因为下面是我们的重点了,我们平常看的应用列表什么的,不是单单的一个TextView就可以 了事的,所以我们可以在Layout里事先 定义好布局。这里我新建了一个名叫baseadapter_provider.xml文件,代码如下:

    [java] view plain copy
  • <?xml version= "1.0"  encoding= "utf-8" ?>  
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  •     android:orientation="horizontal"   
  •     android:layout_width="fill_parent"   
  •     android:layout_height="fill_parent"   
  •     >  
  •     <ImageView  
  •         android:id="@+id/imageView"     
  •         android:layout_width="wrap_content"    
  •         android:layout_height="wrap_content"    
  •         android:src="/blog_article/@drawable/icon/index.html"   
  •     />  
  •     <TextView  
  •         android:id="@+id/textview"     
  •         android:layout_width="wrap_content"    
  •         android:layout_height="wrap_content"    
  •         android:text="BaseAdapter"   
  •     />  
  • </LinearLayout>  
  •  

    将getView()方法修改如下:

    [java] view plain copy
  •      @Override   
  •         public  View getView( int  position, View convertView, ViewGroup parent) {  
  •             // position就是位置从0开始,convertView是Spinner,ListView中每一项要显示的view   
  •             //通常return 的view也就是convertView   
  •             //parent就是父窗体了,也就是Spinner,ListView,GridView了.   
  • //          TextView mTextView = new TextView(getApplicationContext());   
  • //          mTextView.setText("BaseAdapterDemo");   
  • //          mTextView.setTextColor(Color.RED);   
  • //          return mTextView;   
  •               
  •             //LayoutInflater不会的参照我的 Android 高手进阶教程(五)   
  •             convertView = LayoutInflater.from(getApplicationContext()).inflate  
  •             (R.layout.baseadapter_provider,null );  
  •               
  •             TextView mTextView = (TextView)convertView.findViewById(R.id.textview);  
  •             mTextView.setText("BaseAdapterDemo"  + position);  
  •             mTextView.setTextColor(Color.RED);  
  •             return  convertView;  
  •         }  
  • 再次运行看一下效果图如下:

     

    Ok,搞定了


        
    [3] 怎么计算时间复杂度
        来源: 互联网  发布时间: 2014-02-18
    如何计算时间复杂度
    求解算法的时间复杂度的具体步骤是:
      ⑴ 找出算法中的基本语句;

      算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。

      ⑵ 计算基本语句的执行次数的数量级;

      只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的一点上:增长率。

      ⑶ 用大Ο记号表示算法的时间性能。

      将基本语句执行次数的数量级放入大Ο记号中。

      如果算法中包含嵌套的循环,则基本语句通常是最内层的循环体,如果算法中包含并列的循环,则将并列循环的时间复杂度相加。例如:

      for (i=1; i<=n; i++)
      x++;

      for (i=1; i<=n; i++)
      for (j=1; j<=n; j++)
      x++;

      第一个for循环的时间复杂度为Ο(n),第二个for循环的时间复杂度为Ο(n2),则整个算法的时间复杂度为Ο(n+n2)=Ο(n2)。

      常见的算法时间复杂度由小到大依次为:

      Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!)

    Ο(1)表示基本语句的执行次数是一个常数,一般来说,只要算法中不存在循环语句,其时间复杂度就是Ο(1)。Ο(log2n)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间。计算机科学家普遍认为前者是有效算法,把这类问题称为P类问题,而把后者称为NP问题。

    这只能基本的计算时间复杂度,具体的运行还会与硬件有关。


    上面的这部分内容是比较可靠的,理解的时候,可以参看着下面的这部分内容。

    在计算算法时间复杂度时有以下几个简单的程序分析法则:

    1.对于一些简单的输入输出语句或赋值语句,近似认为需要O(1)时间

    2.对于顺序结构,需要依次执行一系列语句所用的时间可采用大O下"求和法则"

    求和法则:是指若算法的2个部分时间复杂度分别为 T1(n)=O(f(n))和 T2(n)=O(g(n)),则 T1(n)+T2(n)=O(max(f(n), g(n)))

    特别地,若T1(m)=O(f(m)), T2(n)=O(g(n)),则 T1(m)+T2(n)=O(f(m) + g(n))

    3.对于选择结构,如if语句,它的主要时间耗费是在执行then字句或else字句所用的时间,需注意的是检验条件也需要O(1)时间

    4.对于循环结构,循环语句的运行时间主要体现在多次迭代中执行循环体以及检验循环条件的时间耗费,一般可用大O下"乘法法则"

    乘法法则: 是指若算法的2个部分时间复杂度分别为 T1(n)=O(f(n))和 T2(n)=O(g(n)),则 T1*T2=O(f(n)*g(n))

    5.对于复杂的算法,可以将它分成几个容易估算的部分,然后利用求和法则和乘法法则技术整个算法的时间复杂度

    另外还有以下2个运算法则:

    (1) 若g(n)=O(f(n)),则O(f(n))+ O(g(n))= O(f(n))

    (2) O(Cf(n)) = O(f(n)),其中C是一个正常数

    可以用以上法则对下面程序段进行简单分析

    ①for (i=0; i<n; i++)

    ② for (j=0; j<n; j++)

    {

    ③ c[i][j] = 0;

    ④ for (k=0; k<n; k++)

    ⑤ c[i][j]= c[i][j]+ a[i][k]* b[k][j];/ * T5(n) = O(1) */

    }

    第①条与②③④⑤是循环嵌套T1(n)*T2(n)* (T3(n)+ T4(n)* T5(n))= O(n*n*n)即为整个算法的时间复杂度

    O(1)<O(log2n)<O(n)<O(n log2 n)<O(n^2)<O(n^3)<O(2^n)



    转自http://blog.sina.com.cn/s/blog_50ce2abb0100vhem.html


    可以看看这个:http://blog.csdn.net/iluna/article/details/4159485

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3