The mobile app market is enjoying an explosive growth. Many people, including teenagers, set about developing mobile apps. Unfortunately, due to developers' inexperience and the unique mobile programming paradigms, a growing number of immature apps are released to users. Despite having useful functionalities, these apps exhibit disruptive behaviors that are inconsiderate to the mobile system as a whole, e.g., retrying network connections too aggressively, waking up the device too frequently, or holding resources for unnecessarily long. These behaviors adversely affect other apps running on the same device and frustrate users with battery drain, excessive cellular data consumption, storage overuse, etc. In this paper, we investigate Disruptive App Behavior (DAB) with a study on 287 real-world DAB issues. Guided by the study, we present DefDroid, a mobile OS designed to protect users from the negative impact of DAB at runtime. DefDroid monitors important app activities and tries to adjust app behaviors using finegrained actions (e.g., enforce back-off to continuous retries, decrease aggressive timer frequency) without breaking app main functionality. Our experiments show that DefDroid effectively curbs 125 real-world DAB cases with small overhead and marginal impact to the usability of both the misbehaving apps and normal apps. During a small-scale user trial, DefDroid also found 6 new DAB issues. We further deployed DefDroid to 185 real users through the PhoneLab testbed for 43 days and found DAB issues from at least 57 apps.