Android学习笔记整理(纪念)

Android线性图 Android画图 xy轴的数据集与渲染器 XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset(); XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer(); xy轴设置 XYSeriesRenderer r1=new XYSeriesRenderer(); r1.setDisplayChartValues(true);//设置显示图表值 r1. 阅读详情

学习笔记:纪念曾经学过的Android,由于负责公司大的方向,向管理方向转型,原先内容一直在有道,为了减少有道笔记在移动端的同步问题,移到博客园。
1、AbActivity   
        继承后  主要实现标题栏的切换,可写一个基类继承实现基本功能后再让界面继承实现简易化操作;

2、@AbIocView
        实现类似AA框架的注解模式.
        如:@AbIocView(id=控件ID,Click="方法名") Button button; 
                按钮还是建议让Activity实现onClickListener接口,然后实现,上面的方面使用:@AbIocView(id=按钮id)Button btn即可。


一、.各种滑动嵌套问题

1、ListView + ViewPager
       
2、SlidingMenu + ViewPager
        
二、数据库操作ORM
      
单表操作(内置存储)  DBInsideSampleActivity.java
    用DAO 继承   AbDBDaoImpl<对象名称>
    //定义数据库操作实现类
 private UserInsideDao userDao = null;


三、线程操作
    
1、线程
    AbTask abTask = new AbTask;
    ////定义异步执行的对象
    final AbTaskItem item = new AbTaskItem();
    item.setListener(new AbTaskListener() {

     @Override
     public void update() {
      AbDialogUtil.removeDialog(ThreadControlActivity.this);
      AbToastUtil.showToast(ThreadControlActivity.this,"执行完成");
     }

     @Override
     public void get() {
            try {
             AbToastUtil.showToastInThread(ThreadControlActivity.this,"开始执行");
             Thread.sleep(3000);
             //下面写要执行的代码,如下载数据
            } catch (Exception e) {
            }
      };
    });

    // 执行线程
    abTask.execute(item);

2、线程队列  AbTaskQueue 
    final AbTaskQueue mAbTaskQueue = AbTaskQueue.getInstance();;
    
    
    
      
3、线程池  AbTaskPool
    

4、异步任务:AbTask  (void)
    

5、异步任务:AbTask  (object)
    
四、图片下载器
      
AbImageLoader mAbImageLoader = new AbImageLoader(mContext);
         mAbImageLoader.setLoadingImage(R.drawable.image_loading);
         mAbImageLoader.setErrorImage(R.drawable.image_error);
         mAbImageLoader.setEmptyImage(R.drawable.image_empty);


    //设置加载中的View(非必需)
    mAbImageLoader.setLoadingView(convertView.findViewById(R.id.progressBar));

    //0:表示原图片大小,
    mAbImageLoader.setMaxWidth(0);
    mAbImageLoader.setMaxHeight(0);

    //缩放图片的下载(保持宽高比,计算缩放比例,使一个方向缩放后,另一方向不小与显示的大小的最合适比例)
    mAbImageLoader.setMaxWidth(150);
    mAbImageLoader.setMaxHeight(150);

    //放大图片的下载
    mAbImageLoader.setMaxWidth(180);
    mAbImageLoader.setMaxHeight(180);


    //图片的下载
    mAbImageLoader.display(ImageView,"图片路径");

五、时钟
    
1、圆形挂钟:AbAnalogClock       AnalogClockActivity.java
     
    
    Drawable 分别为:圆形表的背景,时、分、秒 针;

2、数字时钟:AbNumberClock    NumberClockActivity.java
    
      
3、台历:AbCalendar    DeskCalendarActivity.java
        
        


六、旋转效果
     
1、图片适配
    CarouselImageView carousel = (CarouselImageView) findViewById(R.id.carousel);
    
    构建:List<Drawable>  对象
        
    像ListView 方式一样使用:用适配器
        CarouselImageAdapter adapter = new CarouselImageAdapter(this,mDrawables,true);
        carousel.setAdapter(adapter);
    单击和选择事件:
        

2、VIEW适配
    CarouselView carousel = (CarouselView) findViewById(R.id.carousel);
    
    构建:List<View>  对象
    
    像ListView 方式一样使用:用适配器
        CarouselViewAdapter adapter = new CarouselViewAdapter(this,mViews,true);
        carousel.setAdapter(adapter);
    单击和选择事件:
    

七、侧边栏
      
<strong>      
</strong>1、简单的侧边
        AbSlidingMenuView mAbSlidingView = new AbSlidingMenuView(this);
        View mainView = mInflater.inflate(R.layout.right, null);
        View leftView = mInflater.inflate(R.layout.left, null);
          mAbSlidingView.addView(leftView, layoutParamsFF);
          mAbSlidingView.addView(mainView, layoutParamsFF);
          setContentView(mAbSlidingView);
    
2、左边栏(//SlidingMenu的配置)
        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowWidthRes(R.dimen.shadow_width);
        menu.setShadowDrawable(R.drawable.shadow);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

//主视图的Fragment添加
  getFragmentManager()
  .beginTransaction()
  .replace(R.id.content_frame, new FragmentLoad())
  .commit();

//menu视图的Fragment添加
  menu.setMenu(R.layout.sliding_menu_menu);
  getFragmentManager()
  .beginTransaction()
  .replace(R.id.menu_frame, new FragmentLoad())
  .commit();

mAbTitleBar.getLogoView().setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    if (menu.isMenuShowing()) {
      menu.showContent();
     } else {
      menu.showMenu();
     }
   }
  });

@Override
 public void onBackPressed() {
  if (menu.isMenuShowing()) {
   menu.showContent();
  } else {
   super.onBackPressed();
  }
 }

八、Tab切换
1、顶部切换TAB
    AbSlidingTabView mAbSlidingTabView = (AbSlidingTabView) findViewById(R.id.mAbSlidingTabView)
    
     //缓存数量
      mAbSlidingTabView.getViewPager().setOffscreenPageLimit(5);
      
     其它Tab页面需要继承:AbFragment
   
2、底部切换TAB
    AbBottomTabView mBottomTabView = (AbBottomTabView) findViewById(R.id.mBottomTabView);
    
    //缓存数量
      mBottomTabView.getViewPager().setOffscreenPageLimit(5);
     

九、图表
1、等级条图表:AbLevelSeriesRenderer          (LevelChartActivity.java)
    1.1 取出LinearLayout
        LinearLayout chartLayout = (LinearLayout) findViewById(R.id.chartLayout);    
    1.2 构建图表对象
        AbLevelSeriesRenderer renderer = new AbLevelSeriesRenderer();
    1.3 设置属性
        
           
          AbLevelSeriesDataset mDataset = new AbLevelSeriesDataset();
          AbLevelView mAbLevelView = AbLevelChartFactory.getLevelChartView(this, mDataset, renderer);

         chartLayout.addView(mAbLevelView, new LinearLayout.LayoutParams(
    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

2、XY线图 : XYMultipleSeriesRenderer (每条线都是一个:XYSeriesRenderer)
        
         
           
             
3、XY柱图  XYMultipleSeriesRenderer (每条线都是一个:XYSeriesRenderer)
        和XY线图是一个对象;
        上面最后一段
        
4、饼图  DefaultRenderer (每块都是一个:SimpleSeriesRenderer)
         DefaultRenderer renderer = new DefaultRenderer();
         
5、时间轴图   XYMultipleSeriesRenderer  (每条线是一个:XYSeriesRenderer)
        
6、XY域图  XYMultipleSeriesRenderer     (每条线是一个:XYSeriesRenderer)      XYAreaChartActivity.java
        
十、进度条
1、环形进度条:
AbCircleProgressBar             (ProgressBarCircleActivity.java)
    <com.ab.view.progress.AbCircleProgressBar
            android:id="@+id/circleProgressBar"
            android:layout_width="210dip"
            android:layout_height="210dip"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true" />

    AbCircleProgressBar mAbProgressBar = (AbCircleProgressBar) findViewById(R.id.circleProgressBar);
    numberText = (TextView) findViewById(R.id.numberText);
    maxText = (TextView) findViewById(R.id.maxText);
    maxText.setText("总共  "+String.valueOf(max));
    mAbProgressBar.setMax(max);
    mAbProgressBar.setProgress(progress);

    mAbProgressBar.setAbOnProgressListener(new AbCircleProgressBar.AbOnProgressListener() {
   
   @Override
   public void onProgress(int progress) {
   
   }
   
   @Override
   public void onComplete() {
    progress = 0;
    mAbProgressBar.reset();
   }
  });


2、水平进度条:
AbHorizontalProgressBar     (ProgressBarHorizontalActivity.java)
    AbHorizontalProgressBar mAbProgressBar = (AbHorizontalProgressBar) findViewById(R.id.horizontalProgressBar);
    numberText = (TextView) findViewById(R.id.numberText);
    maxText = (TextView) findViewById(R.id.maxText);
 
    maxText.setText("/"+String.valueOf(max));
    mAbProgressBar.setMax(max);
    mAbProgressBar.setProgress(progress);

    public void startAddProgress() {
          progress = progress+10;
          numberText.setText(String.valueOf(progress));
          mAbProgressBar.setProgress(progress);
          mUpdateHandler.sendEmptyMessageDelayed(1, 1000);
     }

mAbProgressBar.setAbOnProgressListener(new AbHorizontalProgressBar.AbOnProgressListener() {
   
   @Override
   public void onProgress(int progress) {
   
   }
   
   @Override
   public void onComplete() {
    progress = 0;
    mAbProgressBar.reset();
   }
  });

十一、UI控件
1、滑动开关按钮 :AbSlidingButton
<com.ab.view.sliding.AbSlidingButton
        android:id="@+id/mSliderBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginTop="8dip"
        android:layout_marginRight="10dip">
    </com.ab.view.sliding.AbSlidingButton>

    //设置开关显示所用的图片
    holder.itemsCheck.setImageResource(R.drawable.btn_bottom,R.drawable.btn_frame,R.drawable.btn_mask, R.drawable.btn_unpressed,R.drawable.btn_pressed);
           
           //holder.itemsCheck.setFocusable(false);
          //设置开关的默认状态    true开启状态
          //holder.itemsCheck.setToggleState(true);

2、图片轮播(实现:类似腾讯新闻首页顶部的幻灯片效果):AbSlidingPlayView  
[SlidingPlayViewActivity.java]
    <com.ab.view.sliding.AbSlidingPlayView
        android:id="@+id/mAbSlidingPlayView"
        android:layout_width="fill_parent"
        android:layout_height="150dip" >
    </com.ab.view.sliding.AbSlidingPlayView>

    AbSlidingPlayView mSlidingPlayView = (AbSlidingPlayView)findViewById(R.id.mAbSlidingPlayView);
    //构建三个VIEW
    final View mPlayView = mInflater.inflate(R.layout.play_view_item, null);
      ImageView mPlayImage = (ImageView) mPlayView.findViewById(R.id.mPlayImage);
      TextView mPlayText = (TextView) mPlayView.findViewById(R.id.mPlayText);
      mPlayText.setText("1111111111111");
      mPlayImage.setBackgroundResource(R.drawable.pic1);
 
      final View mPlayView1 = mInflater.inflate(R.layout.play_view_item, null);
      ImageView mPlayImage1 = (ImageView) mPlayView1.findViewById(R.id.mPlayImage);
      TextView mPlayText1 = (TextView) mPlayView1.findViewById(R.id.mPlayText);
      mPlayText1.setText("2222222222222");
      mPlayImage1.setBackgroundResource(R.drawable.pic2);
 
      final View mPlayView2 = mInflater.inflate(R.layout.play_view_item, null);
      ImageView mPlayImage2 = (ImageView) mPlayView2.findViewById(R.id.mPlayImage);
      TextView mPlayText2 = (TextView) mPlayView2.findViewById(R.id.mPlayText);
      mPlayText2.setText("33333333333333333");
      mPlayImage2.setBackgroundResource(R.drawable.pic3);

       //添加到播放VIEW中
      mSlidingPlayView.setNavHorizontalGravity(Gravity.RIGHT);
      mSlidingPlayView.addView(mPlayView);
      mSlidingPlayView.addView(mPlayView1);

      //自动/停止播放
        mSlidingPlayView.startPlay();
        mSlidingPlayView.stopPlay();

      //点击每一项时的方法

 //切换或改变到某一项时触发的方法

//结束


3、日历选择器
 CalendarView mCalendarView = 
        
      //找到线性布局,然后将日历加进来
      LinearLayout mLinearLayout = (LinearLayout)this.findViewById(R.id.layout01);
      mCalendarView = new  CalendarView(this);
      mLinearLayout.addView(mCalendarView);

      mCalendarView.setHeaderHeight(45);
      mCalendarView.setHeaderTextSize(20);
 
      mCalendarView.setBackgroundResource(R.drawable.calendar_bg);
      mCalendarView.setHeaderBackgroundResource(R.drawable.week_bg);
      mCalendarView.setOnItemClickListener(new CalendarView.AbOnItemClickListener() {
   
       @Override
       public void onClick(int position) {
              String date = mCalendarView.getStrDateAtPosition(position);
              AbToastUtil.showToast(CalendarActivity.this,"点击了"+position+"值:"+date);
       }
      });

4、POP提示框(可以设置上下左右中等 9 个效果)
<strong> </strong>AbPopoverView popoverView = new AbPopoverView(this);
        popoverView = new AbPopoverView(this);
        popoverView.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.popover_bg));
        popoverView.setArrowLeftDrawable(this.getResources().getDrawable(R.drawable.popover_arrow_left));
        popoverView.setArrowRightDrawable(this.getResources().getDrawable(R.drawable.popover_arrow_right));
        popoverView.setArrowDownDrawable(this.getResources().getDrawable(R.drawable.popover_arrow_down));
        popoverView.setArrowUpDrawable(this.getResources().getDrawable(R.drawable.popover_arrow_up));
        
        popoverView.setContentSizeForViewInPopover(new Point(300, 300));
        popoverView.setPopoverViewListener(new AbPopoverView.PopoverViewListener() {
   
   @Override
   public void popoverViewWillShow(AbPopoverView view) {
   }
   
   @Override
   public void popoverViewWillDismiss(AbPopoverView view) {
   }
   
   @Override
   public void popoverViewDidShow(AbPopoverView view) {
   }
   
   @Override
   public void popoverViewDidDismiss(AbPopoverView view) {
   }
  });


5、轮子选择器:WheelActivity.java
   解释:实现类似IOS的日期、时间、数字方面的轮子选择;
    首先要根据需要创建一个布局,如:1,2,3个轮子;

 
 上面的布局创建以后,用下面方法来初始化轮子




十二、下拉刷新分页
1、普通View下拉刷新
    实现将所有的内容实现下拉刷新,加载更多;

    首先继承AbActivity,并实现 onHeaderRefreshListner,OnFooterLoadListener

    实始化:

下拉刷新

上拉加载更多:

多列的ListView瀑布流
<com.ab.view.pullview.AbMultiColumnListView
        android:id="@+id/mListView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        android:divider="@drawable/list_divider"
        android:dividerHeight="1dip" >
    </com.ab.view.pullview.AbMultiColumnListView>

十三、Dialog示例
Dialog可自定义对话框的显示内容及样式,通过mInflater.infleter(id,null)方式找到view;
说明:showDialog时均为有背景(黑色底,如下图1.1 右),showPanel时均为无背景(如下图1.2 右)
1、通用Dialog
    1.1 显示一个自定义的对话框:背景为暗黑色

1.2 显示一个自定义的对话框,无背景色

2.  Loding 事件 + Dialog  [showLoadDialog/showLoadPanel]
final AbLoadDialogFragment mDialogFragment = AbDialogUtil.showLoadDialog(this, R.drawable.ic_load, "正在查询,请稍候");   
          mDialogFragment.setAbDialogOnLoadListener(new AbDialogOnLoadListener() {

           @Override
           public void onLoad() {
                // 下载网络数据
                downRss(mDialogFragment);
           }

      });
          // 取消的监听
          mDialogFragment.setOnCancelListener(new OnCancelListener() {

           @Override
           public void onCancel(DialogInterface dialog) {
                    AbToastUtil.showToast(DialogActivity.this, "Load框被取消");
           }
          });

 NetworkWeb 是一个AbHttpUtil的测试类;

3. refreshing 事件 + Dialog

4、AlterDialog 系统样式








5、自定义样式 Dialog + 动画
      



       
       6、自定义按钮的位置 (上,中,下,全屏)
             
7、进度条
      
      
十四、HTTP请求
         以下用到操作HTTP的GET,POST请求,同时后面介绍到用队列实现快速高频繁调用方法;
1、Http工具类:AbHttpUtil
        使用(初始化):
                   AbHttpUtil mAbHttpUtil = AbHttpUtil.getInstance(this);
                   mAbHttpUtil.setTimeout(10000);
        调用:
        1.1 get 请求

 1.2 post 请求

  1.3 请求后用 byte[] 字节数组下载(如图片)

 1.4 下载文件

下载文件时需要有进度条,下面为开始下载,下载进度及下载完成的代码:

 进度条需要有一个VIEW用于显示,VIEW中用到AB的进度条控件

  1.5 多File上传(最多两个文件传一次),用POST方法
            描述:首先构建AbRequestParams参数

然后POST请求

开始的方法中需要显示进度条:

2、频繁快速响应Request
    解释:适合大量频繁快速响应的Http Request,也称为“迷你工具类”,主要用到队列;
    首先构建对象:
<strong> </strong>RequestQueue mQueue = Volley.newRequestQueue(this);
    Response.Listener<String> mListener = new Response.Listener<String>(){
            @Override
              public void onResponse(String response) {
               AbDialogUtil.showAlertDialog(HttpMiniActivity.this,"返回结果",response.trim(),new AbDialogOnClickListener(){

             @Override
            public void onNegativeClick() {
            }

            @Override
            public void onPositiveClick() {
            }
         });
          }
        };

        Response.ErrorListener mErrorListener = new Response.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError error) {
               AbToastUtil.showToast(HttpMiniActivity.this,error.getMessage());
          }
        };
然后构建要请求的队列(队列中可以有GET,也可以用POST):

最后完成的时候(需重写Activity的finish方法)或者取消时调用:


十五、WebService访问
Soap:实现WebService的调用
        类:AbSoapUtil
        使用(初始化):
        
 AbSoapUtil abSoapUtil = AbSoapUtil.getInstance(this);
 abSoapUtil.setTimeout(1000);
调用:










去TMD北上广!劳资不干了!是金子,在哪里都会发光,程序员是靠技术吃饭的,不是力工!中国又不是只有这三个城市! 去TMD北上广,劳资不干了,我还就不信了,离开这个地方我还就活不下去! 北漂十年,谨以此文纪念那逝去的青春,为这场北上广大逃亡画上一个休止符…… 北漂十年,我尽力了…… “成功”大概是这个世界上最甜美的果实,他引诱着无数人为之疯狂拼命。 但是,“成功”和“失败”究竟是怎么定义的呢?我不知道,这和“人到底为什么而活”这个问题一样无解。 或许就是普罗大众眼中的:当上CEO,成为高富帅,迎娶白富美,走上人生巅峰。 曾经的我也是这样认为的,但是,我遇到了我现在的妻子,她不是“白富美”但是我们在一起却是如此的合. 阅读详情

相关推荐

android比较全的一个框架,快速开发必备

该资源实现各种android自定义控件,数据库,动画,多线程文件下载、上传,HTTPPost、get请求数据方式,基本上集成了开发android APP的所有资源;绝对让你不需此行

Android利用Achartengine实现实时曲线图

From:http://blog.youkuaiyun.com/lamelias/article/details/41894433 实时曲线图在实际项目中经常会遇到,特别是与传感器相关的项目中。也正是因为公司项目需要实时展现从BLE设备获取到的心电图数据,所以有机会对实时曲线图的实现过程进行了较深入的探究。本文会讲述两种实现方式,其中每种实现方式里都会包含两种展现方式(曲线图平移方向:左、右)。

It_BeeCoder的博客 3933

从0开始使用ArcGIS实现克里金(Kriging)插值(适用数学建模竞赛,详解)

适用:数学建模学习中遇到需要进行克里金(Kriging)插值的任务。希望尽快上手,选择出恰当的半函数模型,并获得插值后的图片。 详细步骤: 一、准备数据 在excel中准备需要进行克里金插值的内容,应该包括至少三列:X坐标,Y坐标,数据。在每一列的列首做好标记,方便导入ArcMap后对应。注意存储时存为xls文件。 二、将数据导如导ArcMap 点击下面这个标记,把数据文件添加到ArcMap。 如果是初次使用的化,可能会不知道进入添加数据对话框之后如何操作。这时应该先点击红框标记的图标,连接到文件夹。

east_fence的博客 4万+

android AChartEngine XYMultipleSeriesRenderer样式属性说明

前两天再做一个关于AChartEngine曲线的实时显示,学习了一些AChartEngine基本用法,现在将XYMultipleSeriesRenderer样式属性说明记录下来和大家一起分享一下XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); renderer.setChartTitle(depid+"号房间

平常心 4763

【BUAA】【计组】计算机组成 pre (含详细解析)

BUAA 计算机组成 本文章旨在为@走肖暂时无法接通的系列文章创造一个目录,收藏本文章,方便查阅! 1. 入门测试 2. 基础知识 3. Logisim   欢迎来到 Logisim 的世界   Logisim 门电路   Logisim 组合电路   Logisim 时序电路   Logisim 仿真与调试   应用与挑战 4. Verilog 与仿真工具   前言   ISE 入门   VCS 入门   Verilog 语法   Verilog 题目实例与分析   Verilog 工程的设计开发调试

Schrodinger007的博客 9806

伺服电机开发实战指南

伺服电机作为工业自动化的核心部件,正经历前所未有的技术革新。本文从基础原理出发,详细介绍了伺服电机的分类、工作原理和特性,分析了伺服电机系统组成与核心部件,探讨了企业级开发技术,包括控制算法、通信协议和故障诊断等高级功能,并提供了实战案例分析,从行业应用到具体开发步骤,展示了伺服电机的工程实现。通过深入理解伺服电机的原理、掌握开发技术、学习应用案例,可以实现伺服系统的高性能开发与应用。

全栈 1675

Android设置XYMultipleSeriesRenderer自定义X轴显示的内容

我们在绘制图形时,在默认的情况下,横坐标轴上的刻度值,要么显示为数字,要么显示为时间。当我们需要显示其他内容,比如文字时,则需要使用 XYMultipleSeriesRenderer的addTextLabel(int,String)方法。     该方法接收一个int参数,用于指定要显示文字的X轴坐标,比如在X轴坐标1的位置显示“昆明”,则addTextLabel(1,”昆明”);    

u010919530的专栏 3040

Telegram AI Bot自动化实战:5步用Make搭建业务工作台

Telegram Bot 是一种轻量级、高抵达率的消息自动化载体,其核心价值在于将结构化消息(如text、photo、callback_query)转化为可编程的事件流。基于 Bot API 的简洁设计与 Webhook 机制,开发者无需复杂鉴权即可实现毫秒级响应。结合低代码平台 Make,可快速构建具备上下文识别、条件路由、多系统分发与错误熔断能力的自动化流程。该方案特别适用于客服分发、数据同步、IoT告警等高频、规则明确、需即时反馈的业务场景,显著降低对 Python/Node.js 编程与 DevOp

weixin_33158887的博客 297

我的创作纪念日

本文回顾了作者从2021年在优快云撰写第一篇技术笔记至今的成长历程。通过写作梳理知识、倒逼理解,逐步构建起涵盖前端、可视化、运维等领域的博客体系。尤其以Cesium专栏为里程碑,实现了从“会用”到“讲清”的跃迁。未来将继续深耕AI应用开发,追求更精准、可复现的技术表达,坚信清晰的表达力才是持久的价值。

虎康的博客 259

BEVFormer vs BEVFusion:5个关键差异点帮你选对环视感知方案

本文深入对比了自动驾驶领域两大主流环视感知方案BEVFormer与BEVFusion。BEVFormer作为纯视觉BEV感知的标杆,通过注意力机制隐式学习深度,成本较低;而BEVFusion作为多模态融合典范,融合激光雷达与摄像头数据,在性能、小目标检测及极端环境鲁棒性上优势显著。文章从计算效率、部署成本、数据依赖性等五个核心维度提供选型指南,帮助技术决策者根据自身算力预算与传感器配置做出明智选择。

weixin_29306011的博客 123

实战:RK3568 Android14 调试 ES8388 音频驱动 (MIC 篇)

这个板子的MIC设计使用了硬件自动切换方案,极大简化了软件层面的逻辑。我们不需要根据耳机插拔事件去编写复杂的路由切换代码,只需要守住 LIN1/RIN1 这一个入口,配置好增益,剩下的交给那颗 SGM3157 芯片即可。祝您的录音功能调试顺利!

qq_33427070的博客 1676

班级纪念册php源码,班级纪念册内容,班级纪念册的创意设计图片内容

我们班级纪念册,是在毕业的时候,同学们为自己或者是家长为孩子们定制的班级毕业纪念册,那么,这个班级纪念册内容都有哪些内?班级纪念册都包括什么内容呢?本文就由顺时针纪念册设计特别整理的班级纪念册内容详情和班级纪念册的创意设计图片内容展示提供给大家参考和欣赏。1、班级纪念册内容班级纪念册的内容,通常也就是我们说的毕业纪念册的内容,包含了以下几项:(1)、班级纪念册的开头,又称为毕业纪念册卷首语,也称为...

weixin_29447313的博客 395

【PCIe硬件】PCIe引脚PRSNT与热插拔

热插拔的基本目的是要让PCIe设备按照规定的顺序、原则,从系统中移除或插入到系统中来,并能正常的工作,且不影响系统的正常运行。事实上,PCIe“热插拔”的关键目的就是为前面面所提到的系统RAS服务的,是提升系统RAS能力的非常重要的手段!注意,这里有两个相关概念,前面我们讲的热插拔,其实是广义的“热插拔”。这里的Hot-Plug,为了方便,我们叫做PCIe热插拔,也就是我们现在及后面将要讨论的内容。

smartvxworks的博客 2799

基于ssm+vue网上纪念馆服务平台【开题+程序+论文】

此外,通过对纪念馆进行科学分类与精准推荐,提升用户的浏览效率与满意度,促进文化的深度交流与传播。本研究的意义在于,首先,它能够有效推动文化遗产的数字化保护与传承,通过构建丰富的线上纪念馆资源,使珍贵的历史记忆得以永久保存并广泛传播;再者,该平台还促进了文化与科技的深度融合,为文化产业的发展注入了新的活力,推动了文化产业的数字化转型升级。[12] 陈湘瑾, 于孔亮, 祖子帅, 修昂. 基于数据库和Java的宿舍管理系统[J]. 科学技术创新, 2021, (09): 96-97。

文星毕设程序 1145

Cloud Connector RFC 访问控制深度实践:为 SAP BTP ABAP environment 打通安全、可控的远程连接

本文是一份面向企业ABAP团队与平台工程团队的Cloud Connector RFC访问控制配置指南。文章详细介绍了虚拟主机/实例号、负载均衡、资源白名单等核心概念,并提供了从零开始的配置流程。主要内容包括:通过Cloud Connector建立安全隧道的价值(零暴露、最小权限)、两种连接类型(无负载均衡/带负载均衡)的配置方法、资源白名单设置技巧,以及两个典型应用场景(Custom Code Migration远程检查与BAPI调用)的实操案例。指南基于SAP官方文档,包含落地经验与避坑建议,可帮助团队快

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 143

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

安卓手机清理存储空间

安卓手机深度清理指南 本文提供一套系统化的安卓手机存储清理方案: 备份先行:重点备份照片、文档、聊天记录至云端+本地,避免误删 系统工具清理:利用各品牌自带的手机管家清除缓存、安装包等冗余文件 专项清理: 照片按类型分类处理,保留重要内容 重点清理Download文件夹和微信/QQ缓存 深度清理应用数据(注意区分可清理与需保留的APP) 根目录整理:删除卸载应用的残留文件夹,保留系统核心目录 关键提示:清理微信/系统目录需谨慎,建议配合云备份操作;定期养成整理习惯比突击清理更有效。

生活在别处 4619

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

安卓手机测评_鲁大师安卓新机流畅度排行榜更新,骁龙865加持,小米夺得榜首...

近日,国内顶尖电脑系统检测工具鲁大师对外更新了今年8月份的安卓手机流畅度排行榜。鲁大师数据中心团队在8月份新发布的安卓手机中进行了系统文件拷贝、桌面切屏、网页界面加载缓存等操作测评,从多角度、多方面综合所有测评数据进行整理分析后得出手机系统的优化程度和适配性分数,最后将综合后的流畅度分数进行了排列。在鲁大师8月安卓新机流畅度排行榜单中,小米10至尊纪念版分数为187.91,登上榜单首位。第二名至第...

weixin_39960793的博客 273

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

防系统老化 android,安卓系统越用越卡,曾学忠:小米 10 至尊纪念版性能属业界顶尖水平...

小米集团副总裁、手机部总裁曾学忠谈及了 “Android 系统为什么越用越卡”的问题曾学忠表示,Android 系统越用越卡是因为用户长时间使用手机后,内存和存储紧缺以及碎片化,以及 Java 语言边解释边执行,效率低,Linux 完全公平的调度策略等问题。IT之家了解到,曾学忠指出,小米系统软件基础架构 MITurbo 也一直在深度解决这些业界难题,目前搭载 MITurbo 4.0 技术的小米 ...

weixin_33844346的博客 422

unity发布安卓黑屏_Win 10直接访问安卓APP功能未来将会扩大到更多用户

在本月早些时候三星发布新一代Galaxy Note系列时,微软也同时为Windows 10系统更新了一项功能:通过Windows 10上的“Your Phone(你的手机)”应用,可以在连接到三星手机后,直接运行手机内安装的安卓应用,每一款应用都会在单独新建的窗口下运行,并且界面体验和在安卓上运行应用一致。甚至你还可以把常用的应用固定到系统任务栏里,随时打开。不过,微软也表示,由于安卓应...

weixin_33741534的博客 110

纪念自己的第一个应用上线

每日口语是我在android平台上开发的第一款算得上是产品的产品,陆陆续续做了两个月,今天终于制作完成,已经上传到了各大国内第三方市场(新版的可能要审核两三天)。 点我去下载 到应用市场,搜每日口语,图标有白云蓝天绿草的那个就是我的了。 虽说是第一款应用,但还是花了很大的心思,从素材的整理,到编程,到设计,每一步都花了很多的心思,最后的产品应该算是基本满意吧。 下面是一个开发的日记,算是一

爱冒险的技术宅 2429

C站一千粉丝纪念有感

文章目录有感C站对我个人的作用总结版面与广告问题内容重复问题寄语 有感 今天终于在C站上突破1000粉,正好访问量也突破30W,也算一个小小的里程碑。特此纪念一下。 还记得第一次接触C站,是在2015年刚参加工作的时候。当时因为百度搜一些技术相关的文章都会导向到优快云,觉得这个网站就是一个大神聚集地。当时只会看,觉得能写出技术博客的人都很牛逼。 第一次也想自己发点什么东西。当时在做安卓相关开发,所以最初的几篇文章也都是关于安卓的。记得访问量最多的一篇应该是windows下配置域名相关的东西,当时自己查阅

Charles Ren's Tech Blog 825

手机黑屏摄像app_2020年双十二安卓旗舰手机有哪些机型值得购买?

本次更新于2020年12月2日,新增小米10至尊纪念版和红米K30至尊纪念版推荐 导语:2020年上半年,国内的许多知名手机厂商为了推广自己的手机品牌,纷纷推出了自己的旗舰手机。那么问题来了,如何从众多的旗舰手机中选择一台高性价比且适合自己的机型呢?本答案为了提升推荐的科学性以及合理性,参考了国内知名手机测评公司(安兔兔)于7月6日发布的安卓旗舰性价比排行资料。本文所涉及到的手机参数均成来自官网并...

weixin_30788829的博客 281

『周年纪念』- 降生优快云三周年的碎碎念

一转眼又过来一年,自己也已经即将毕业。感觉这一年像是开了加速键,仿佛一瞬就又过去了。统计了一下发现自己在过去的这一年就发布了文章,2022年发布了,2021年发布了。其实并不是自己没有了写文章做笔记的习惯,反而这没有发文章的第三周年我觉得是我至关重要的一年,让我对博客撰写有了新的认识。

一个专注于客户端开发的技术er,不定期更新Android,Flutter,HormonyOS等方向的使用心得和感悟 1043
上一篇: Arduino 卡片15红外遥控数码管
下一篇: Annotation recipes 注解使用方法
Alexantao
博客等级 码龄19年 86粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值