Learn how to solve difficult problems in actual combat of Flutter project

/How to view Internet layoffs/

/Although I'm good at cooking/

/But/

/I never stop studying/

/I also bought online courses/

/Congratulations on getting the title of huoyun evil god in your study/

/Talking about the anxiety and panic caused by layoffs on the Internet/

/In fact, I think this is the reaction of most people when the environment changes/

/Why panic / anxiety/

/There is one reason to explain this panic and anxiety/

/That is the lack of ability and confidence every day/

/Do dishes like me have confidence/

/Because I understand/

/There used to be anxiety and panic because of some things/

/Not now / congratulations 🎉🎉 I have grown up in my work and life/

/Look at the lofty aspirations of the ancients /

/It can eliminate the anxiety and panic caused by layoffs/

/There is still more courage in Lian Po's 60s/

/Huang Zhong, 60, Zhan Guanyu, Changsha, Hunan/

/Zhao Yun Changbanpo seven in and seven out to save ah Dou/

/Look at the combat effectiveness of ancient people /

/I feel like I'm weak/

/Development tools Android Studio related configurations/

/Download Android Studio/

/The new version of AS is a little fancy/

/ Android project needs to be configured in three places /

/Very important/

 

/ create fluent project/

/ open any file in the Android folder/

/ Open fore Editing in Android Studio /

/ running project Android/

/ flutter run | flutter run --profile /

/Compare with earlier AS versions/

/It is found that the location of the simulator is different from before/

/Operation engineering IOS/

/Log debugging/

debugger()

/Debug interrupt when when is true/

external bool debugger({bool when = true, String? message});

/ run the project through the command "fluent run | fluent run -- profile"/

/ open in browser/

/ when when is true/

/debugPrint('debugPrint ') is not executed/

print()

/Any type of data can be printed/

void print(Object? object)
print('start ${widget} ${hashCode} ${Icons.add} ${123456789} end');

debugPrint()

/Only string type data can be output/

void debugPrintThrottled(String? message, { int? wrapWidth })

/ there are too many log contents and only a part of them are output/

debugPrint('start Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log output log Output log output log output log output log output log output log output log output log output log end');
 

 

Fluent logs command

/You can view all log information on the console/

/Print all logs/

/The print log will be incomplete/

/Split the logs to be printed/

/Print all logs by looping/

int _strLength = _str.length;
    int _subStrL = (_strLength % 1000 == 0
        ? int.parse((_strLength / 1000).toStringAsFixed(0))
        : int.parse((_strLength / 1000).toStringAsFixed(0)) + 1);
    for (int i = 0; i < _subStrL; i++) {
      if(i+1<_subStrL-1){
        debugPrint(_str.substring(i * 1000, (i + 1) * 1000));
      }
      if(i+1==_subStrL-1){
        debugPrint(_str.substring(i * 1000, _strLength));
      }
    }

 

/Visual debugging/

debugPaintSizeEnabled

/Turn on debug layout mode/

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _testDebugger() {
    setState(() {
      _counter++;
    });
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(
          widget.title,
          style: const TextStyle(textBaseline: TextBaseline.alphabetic),
        ),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const RepaintBoundary(
              child: Text(
                ' / Text baseline xy123~111 ',
                style: TextStyle(
                    textBaseline: TextBaseline.ideographic, fontSize: 30.0),
              ),
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _testDebugger,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

debugPaintBaselinesEnabled

/Display text or character baseline/

Text(
          widget.title,
          style: const TextStyle(textBaseline: TextBaseline.alphabetic),
        )

 

Text(
              '/ Text baseline xy123~',
              style: TextStyle(
                  textBaseline: TextBaseline.ideographic, fontSize: 30.0),
            )

 

debugPaintPointersEnabled

/The trigger clicks of widget s with click events will be highlighted in dark cyan/

debugPaintLayerBordersEnabled

/Mark the boundary of each layer with orange or outline/

/Debug composite layer/

RepaintBoundary(
              child: Text(
                ' / Text baseline xy123~111 ',
                style: TextStyle(
                    textBaseline: TextBaseline.ideographic, fontSize: 30.0),
              ),
            )

 

debugRepaintRainbowEnabled

/Each layer of the view rendering is covered in yellow/

/Debug animation/

timeDilation

/Slow down animation/

/The larger the timedivision, the slower the animation/

/ commissioning performance/

debugPrintMarkNeedsLayoutStacks

/Apply re layout print stack information/

debugPrintMarkNeedsPaintStacks

/Apply redraw print stack information/

/View app start time /

Analyze the time required for the Flutter application to start

flutter run --trace-startup --profile

/The trace output is saved as start_up_info.json, in the fluent project directory, in the build directory/

/The output lists the time taken from application startup to these trace events (captured in microseconds)/

/When entering the shuttle engine/

/Show when applying the first frame/

/When initializing the fluent framework/

/When completing the initialization of the fluent framework/

{
  "engineEnterTimestampMicros": 119104268791,//When entering the shuttle engine
  "timeToFrameworkInitMicros": 323152, // When initializing the fluent framework
  "timeToFirstFrameRasterizedMicros": 583404, //
  "timeToFirstFrameMicros": 407215, // Show when applying the first frame
  "timeAfterFrameworkInitMicros": 84063 // When completing the initialization of the fluent framework
}

Keywords: Android Android Studio Flutter

Added by tolli on Mon, 31 Jan 2022 04:21:46 +0200